Skip to content

Commit b4aa0b3

Browse files
authored
Create 1889-minimum-space-wasted-from-packaging.js
1 parent 8fa0755 commit b4aa0b3

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
/**
2+
* @param {number[]} packages
3+
* @param {number[][]} boxes
4+
* @return {number}
5+
*/
6+
var minWastedSpace = function (packages, boxes) {
7+
packages.sort(function (a, b) {
8+
return a - b
9+
})
10+
let count = 0,
11+
b,
12+
wastage,
13+
minWastage = Number.MAX_SAFE_INTEGER,
14+
flag = false
15+
for (let i = 0; i < boxes.length; i++) {
16+
boxes[i].sort(function (a, b) {
17+
return a - b
18+
})
19+
b = 0
20+
wastage = 0
21+
count = 0
22+
if (boxes[i][boxes[i].length - 1] < packages[packages.length - 1]) {
23+
//This supplier's largest box is smaller than our larget package, this supplier can't be used
24+
continue
25+
}
26+
while (count < packages.length && b < boxes[i].length) {
27+
if (packages[count] <= boxes[i][b]) {
28+
wastage += boxes[i][b] - packages[count]
29+
if (wastage > minWastage) {
30+
//Need not to porcess this supplier if wastage has already been more than minWastage
31+
break
32+
}
33+
count++
34+
} else {
35+
b++
36+
}
37+
}
38+
if (count === packages.length) {
39+
flag = true //We have found atleas 1 answer
40+
if (wastage < minWastage) {
41+
minWastage = wastage
42+
}
43+
}
44+
}
45+
if (flag === false) {
46+
return -1
47+
}
48+
return minWastage % 1000000007
49+
}

0 commit comments

Comments
 (0)