-
Notifications
You must be signed in to change notification settings - Fork 0
/
minimumBoxes.js
39 lines (32 loc) · 1.18 KB
/
minimumBoxes.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/**
You are given an array apple of size n and an array capacity of size m.
There are n packs where the ith pack contains apple[i] apples. There are m boxes as well, and the ith box has a capacity of capacity[i] apples.
Return the minimum number of boxes you need to select to redistribute these n packs of apples into boxes.
Note that, apples from the same pack can be distributed into different boxes.
Example 1:
Input: apple = [1,3,2], capacity = [4,3,1,5,2]
Output: 2
Explanation: We will use boxes with capacities 4 and 5.
It is possible to distribute the apples as the total capacity is greater than or equal to the total number of apples.
Example 2:
Input: apple = [5,5,5], capacity = [2,4,2,7]
Output: 4
Explanation: We will need to use all the boxes.
* @param {number[]} apple
* @param {number[]} capacity
* @return {number}
*/
var minimumBoxes = function (apple, capacity) {
let total = apple.reduce((acc, curr) => acc + curr, 0);
let sorted_capacity = capacity.sort((a, b) => b - a);
let boxes = 0;
for (let i = 0; i < sorted_capacity.length; i++) {
if (total > 0) {
total = total - sorted_capacity[i];
boxes += 1;
} else {
break;
}
}
return boxes;
};