import java.util.Arrays; class Solution { public int numRescueBoats(int[] people, int limit) { Arrays.parallelSort(people); int counter = 0; int left = 0, right = people.length - 1; while (left <= right && left < people.length && right >= 0) { ++counter; // they both fit if (left < right && people[left] + people[right] <= limit) { ++left; } // the heaviest person is always included --right; } return counter; } }