Leetcode 1046.最后一块石头的重量(JS版)
有一堆石头,每块石头的重量都是正整数。
每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下:
如果 x == y,那么两块石头都会被完全粉碎;
如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。
最后,最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下,就返回 0
/**
* @param {number[]} stones
* @return {number}
*/
var lastStoneWeight = function(stones) {
//声明函数,作用:找出最大的两个数,并从数组删除
var x,y,k;//x<=y
function findNumber(a_list){
var n=0;
var a=a_list[n];
for(var i=0;i<a_list.length;i++){
if(a<a_list[i]){
a=a_list[i];
n=i;
}
}
a_list.splice(n,1);//数组元素删除
return a;
}
//数组长度小于2时输出结果
for(;stones.length>1;){
y=findNumber(stones);
x=findNumber(stones);
k = y-x;
//石块粉碎条件判断
if(x!=y){
stones.push(k);//数组元素添加
}
}
return stones[0] || 0 ; //没有石块,stones[0]为undefined,返回||后面的0
};
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/last-stone-weight
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。