有一堆石头,每块石头的重量都是正整数。数组
每一回合,从中选出两块 最重的 石头,而后将它们一块儿粉碎。假设石头的重量分别为 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] };
执行结果图片