有一堆石頭,每塊石頭的重量都是正整數。數組
每一回合,從中選出兩塊 最重的 石頭,而後將它們一塊兒粉碎。假設石頭的重量分別爲 x 和 y,且 x <= y。那麼粉碎的可能結果以下:spa
示例: 輸入:[2,7,4,1,8,1] 輸出:1 解釋: 先選出 7 和 8,獲得 1,因此數組轉換爲 [2,4,1,1,1], 再選出 2 和 4,獲得 2,因此數組轉換爲 [2,1,1,1], 接着是 2 和 1,獲得 1,因此數組轉換爲 [1,1,1], 最後選出 1 和 1,獲得 0,最終數組轉換爲 [1],這就是最後剩下那塊石頭的重量。
提示:code
解題思路:blog
解題代碼排序
/** * @param {number[]} stones * @return {number} */ var lastStoneWeight = function(stones) { while (stones.length > 1) { stones.sort((a, b) => b - a); stones[0] = stones[0] - stones[1]; stones.splice(1, 1); } return stones.length === 0 ? 0 : stones[0] };
執行結果圖片