File tree Expand file tree Collapse file tree 1 file changed +49
-0
lines changed Expand file tree Collapse file tree 1 file changed +49
-0
lines changed Original file line number Diff line number Diff line change
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
+ }
You can’t perform that action at this time.
0 commit comments