LeetCode/cpp/boats-to-save-people.cpp

27 lines
663 B
C++
Raw Permalink Normal View History

#include <algorithm>
#include <vector>
class Solution {
public:
int numRescueBoats(std::vector<int> people, int limit) {
std::sort(people.begin(), people.end());
int counter = 0;
std::size_t left = 0, right = people.size() - 1;
while (left <= right && left < people.size() && right < people.size()) {
counter++;
// if they both it, shift the left pointer
if (left < right && people[left] + people[right] <= limit) {
left++;
}
// anyways, at least the heaviest person is included
right--;
}
return counter;
}
};