leetcode 881. Boats to Save People
1272 ワード
1隻の船で人を救えますが、毎回最大2人しか救えませんので、最低何回かお願いします
これは左右ノード法です.
これは左右ノード法です.
var numRescueBoats = function (people, limit) {
people.sort((a, b) => a - b)
var left = 0;
var right = people.length - 1;
var boats = 0, track = []
track.add = function (a) {
this.push(JSON.stringify(a))
}
while (left < right) { //
if (people[left] + people[right] <= limit) {
// left, right
track.add([people[left], people[right]])
left++;
right--
boats++;
} else {
// right
track.add([people[right]])
boats++
right--
}
if (right == left) {
track.add([people[right]])
// left
boats++;
}
}
console.log(track, 'only test, limit = ', limit)
return boats;
};
//1,2,2, 3
numRescueBoats([3, 2, 2, 1], 3)
numRescueBoats([3, 5, 3, 4], 5)
numRescueBoats([1, 1, 2, 4], 4)