Class Solution
- java.lang.Object
-
- g1801_1900.s1889_minimum_space_wasted_from_packaging.Solution
-
public class Solution extends Object
1889 - Minimum Space Wasted From Packaging.Hard
You have
npackages that you are trying to place in boxes, one package in each box. There aremsuppliers that each produce boxes of different sizes (with infinite supply). A package can be placed in a box if the size of the package is less than or equal to the size of the box.The package sizes are given as an integer array
packages, wherepackages[i]is the size of theithpackage. The suppliers are given as a 2D integer arrayboxes, whereboxes[j]is an array of box sizes that thejthsupplier produces.You want to choose a single supplier and use boxes from them such that the total wasted space is minimized. For each package in a box, we define the space wasted to be
size of the box - size of the package. The total wasted space is the sum of the space wasted in all the boxes.- For example, if you have to fit packages with sizes
[2,3,5]and the supplier offers boxes of sizes[4,8], you can fit the packages of size-2and size-3into two boxes of size-4and the package with size-5into a box of size-8. This would result in a waste of(4-2) + (4-3) + (8-5) = 6.
Return the minimum total wasted space by choosing the box supplier optimally , or
-1if it is impossible to fit all the packages inside boxes. Since the answer may be large , return it modulo109 + 7.Example 1:
Input: packages = [2,3,5], boxes = [[4,8],[2,8]]
Output: 6
Explanation: It is optimal to choose the first supplier, using two size-4 boxes and one size-8 box.
The total waste is (4-2) + (4-3) + (8-5) = 6.
Example 2:
Input: packages = [2,3,5], boxes = [[1,4],[2,3],[3,4]]
Output: -1
Explanation: There is no box that the package of size 5 can fit in.
Example 3:
Input: packages = [3,5,8,10,11,12], boxes = [[12],[11,9],[10,5,14]]
Output: 9
Explanation: It is optimal to choose the third supplier, using two size-5 boxes, two size-10 boxes, and two size-14 boxes.
The total waste is (5-3) + (5-5) + (10-8) + (10-10) + (14-11) + (14-12) = 9.
Constraints:
n == packages.lengthm == boxes.length1 <= n <= 1051 <= m <= 1051 <= packages[i] <= 1051 <= boxes[j].length <= 1051 <= boxes[j][k] <= 105sum(boxes[j].length) <= 105- The elements in
boxes[j]are distinct.
- For example, if you have to fit packages with sizes
-
-
Constructor Summary
Constructors Constructor Description Solution()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intminWastedSpace(int[] packages, int[][] boxes)
-