看到排名靠前的人都选择了用排序的api来找最大的两个数…再一看题,就三十个数字,自己这么找这俩最大数是真的蠢
/**
* @param {number[]} stones
* @return {number}
*/
const lastStoneWeight = function (stones) {
let array = stones;
let max1 = -1,
max2 = -1,
max1Index = 0,
max2Index = 0,
difference = 0;
while (array.length !== 1) {
for (let i = 0; i < array.length; i++) {
if (array[i] > max1) {
max1Index = i;
max1 = array[i];
}
}
for (let i = 0; i < array.length; i++) {
if (array[i] > max2 && i !== max1Index) {
max2Index = i;
max2 = array[i];
}
}
difference = array[max1Index] - array[max2Index];
if (difference) {
array.push(difference);
}
if (array.length === 2) {
return 0;
}
if (max1Index > max2Index) {
array.splice(max1Index, 1);
array.splice(max2Index, 1);
} else {
array.splice(max2Index, 1);
array.splice(max1Index, 1);
}
max1 = -1;
max2 = -1;
}
return array[0];
};