Search⌘ K
AI Features

Solution: Boats to Save People

Explore how to solve the problem of rescuing people with the fewest boats using a greedy algorithm. Understand how sorting and two-pointer techniques pair the heaviest and lightest individuals to optimize boat usage. Learn to implement this approach and analyze its time and space complexity for efficient coding interview preparation.

Statement

A big ship with numerous passengers is sinking, and there is a need to evacuate these people with the minimum number of life-saving boats. Each boat can carry, at most, two persons however, the weight of the people cannot exceed the carrying weight limit of the boat.

We are given an array, people, where people[i] is the weight of the ithi^{th} person, and an infinite number of boats, where each boat can carry a maximum weight, limit. Each boat carries, at most, two people at the same time. This is provided that the sum of the weight of these people is under or equal to the weight limit.

You need to return the minimum number of boats to carry all persons in the array.

Constraints:

  • 11 \leq people.length 5×103\leq 5 \times 10^3 ...