leetcode-1046-最后一块石头的重量

96 阅读1分钟

image.png leetcode原题

解题思路

  • 先按倒序排序
  • 那么y=stones[0],x=stones[1]
  • 然后判断 y 等于 x 两个都完全粉碎,使用从数组中删除
  • 如果 y 大于 x 则删 x 并且修改 y = y - x
  • 递归遍历得出结果
var lastStoneWeight = function(stones) {
    if (stones.length === 0) return 0
    if (stones.length === 1) return stones[0]
    stones.sort((a,b) => b - a)
    let y = stones[0]
    let x = stones[1]
    if (y === x) stones.splice(0, 2)
    if (y > x) {
        stones.splice(1, 1)
        stones[0] = y - x
    }
    return lastStoneWeight(stones)
};