Untitled
unknown
java
a year ago
1.6 kB
11
Indexable
class Result { /* * Complete the 'getMaxUnits' function below. * * The function is expected to return a LONG_INTEGER. * The function accepts following parameters: * 1. LONG_INTEGER_ARRAY boxes * 2. LONG_INTEGER_ARRAY unitsPerBox * 3. LONG_INTEGER truckSize */ public static long getMaxUnits(List<Long> boxes, List<Long> unitsPerBox, long truckSize) { // Create a list of box-unit pairs List<BoxUnitPair> pairs = new ArrayList<>(); for (int i = 0; i < boxes.size(); i++) { pairs.add(new BoxUnitPair(boxes.get(i), unitsPerBox.get(i))); } // Sort the pairs based on units in each box in descending order pairs.sort((p1, p2) -> Long.compare(p2.units, p1.units)); long totalUnits = 0; for (BoxUnitPair pair : pairs) { // If we can fit all boxes of this product, add all the units to the total if (truckSize >= pair.boxes) { totalUnits += pair.boxes * pair.units; truckSize -= pair.boxes; } else { // If we can only fit a portion of the boxes, fill the remaining space totalUnits += truckSize * pair.units; break; } // If the truck is full, we break out of the loop if (truckSize == 0) break; } return totalUnits; } static class BoxUnitPair { long boxes; long units; BoxUnitPair(long boxes, long units) { this.boxes = boxes; this.units = units; } } }
Editor is loading...
Leave a Comment