Problem · Array

Get Minimum Boxes

MediumAmazonNEW GRADOA
See Amazon hiring insights

The supply chain manager at one of Amazon's warehouses is shipping the last container of the day. All n boxes have been loaded into the truck with their sizes represented in the array boxes. The truck may not have enough capacity to store all the boxes though, so some of the boxes may have to be unloaded. Any boxes may be unloaded, and the order of the boxes does not matter; only the sizes of the remaining boxes are considered. The remaining boxes must satisfy the condition max(boxes) ≤ capacity * min(boxes).

Given the array boxes and the value capacity, find the minimum number of boxes that need to be unloaded so that the remaining boxes satisfy the condition.

Function Description

Complete the function getMinimumBoxes in the editor.

getMinimumBoxes has the following parameters:

  • int[] boxes: an array of integers representing the sizes of the boxes
  • int capacity: the capacity multiplier of the truck

Returns

int: the minimum number of boxes that need to be unloaded

Examples
01 · Example 1
boxes = [1, 4, 3, 2]
capacity = 2
return = 1

Here boxes = [1, 4, 3, 2] and capacity = 2.

With all boxes loaded, max = 4 and min = 1, so max ≤ capacity * min becomes 4 ≤ 2 * 1 = 2, which is false.

Unload the box of size 1. The remaining boxes are [4, 3, 2] with max = 4 and min = 2, so 4 ≤ 2 * 2 = 4, which is true.

Only one box must be unloaded, so the answer is 1.

Constraints
  • 1 ≤ n ≤ 10^5
  • 1 ≤ boxes[i] ≤ 5 * 10^5
  • 1 ≤ capacity
More Amazon problems
drafts saved locally
public int getMinimumBoxes(int[] boxes, int capacity) {
  // write your code here
}
boxes[1, 4, 3, 2]
capacity2
expected1
checking account