2
public int minWastedSpace(int[] packages, int[][] boxes) {4
int n = packages.length, k = -1;5
long sum = 0, ans = Long.MAX_VALUE;6
int[] pos = new int[100001];7
for (int i = 0; i < 100001; i++) { // precompute jump position.8
while (k < n - 1 && packages[k + 1] == i) {13
for (int[] b : boxes) {17
for (int i = 0; i < b.length; i++) {19
int cnt = pos[b[i]] - k;20
cost += 1L * cnt * b[i];24
ans = k == n - 1 ? Math.min(cost, ans) : ans;27
return ans == Long.MAX_VALUE ? -1 : (int) (ans % (int) (1e9 + 7));