Problem · Greedy

Package Delivery System

MediumAmazonINTERNOA
See Amazon hiring insights

Each shipment scenario has a list of truck capacities and a list of package weights.

A truck may deliver any package whose weight does not exceed its current capacity. After a successful delivery, that truck's capacity becomes floor(capacity / 2). Determine whether every package in each scenario can be delivered using the available trucks.

Return an int[] where each entry is 1 if the corresponding scenario is feasible and 0 otherwise.

Examples
01 · Example 1
truckCapacities = [[7]]
packageWeights = [[4, 3]]
return = [1]

The single truck delivers package 4, its capacity drops to 3, and it can still deliver package 3. The scenario is feasible.

Constraints

The number of scenarios and the lengths of the nested arrays can be large, so the solution should avoid brute-force backtracking over all assignments.

More Amazon problems
drafts saved locally
public int[] canDeliverAllPackages(int[][] truckCapacities, int[][] packageWeights) {
  // write your code here
}
truckCapacities[[7]]
packageWeights[[4, 3]]
expected[1]
sign in to submit