#include #include class Solution { public: int numRescueBoats(std::vector 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; } };