卡车上的最大单元数

请你将一些箱子装在 一辆卡车 上。给你一个二维数组 boxTypes ,其中 boxTypes[i] = [numberOfBoxesi, numberOfUnitsPerBoxi] :
numberOfBoxesi 是类型 i 的箱子的数量。
numberOfUnitsPerBoxi 是类型 i 每个箱子可以装载的单元数量。
整数 truckSize 表示卡车上可以装载 箱子 的 最大数量 。只要箱子数量不超过 truckSize ,你就可以选择任意箱子装到卡车上。
返回卡车可以装载 单元 的 最大 总数。

  • 输入:boxTypes = [[1,3],[2,2],[3,1]], truckSize = 4
  • 输出:8
  • 解释:箱子的情况如下:
  • 1 个第一类的箱子,里面含 3 个单元。
  • 2 个第二类的箱子,每个里面含 2 个单元。
  • 3 个第三类的箱子,每个里面含 1 个单元。
    可以选择第一类和第二类的所有箱子,以及第三类的一个箱子。
    单元总数 = (1 _ 3) + (2 _ 2) + (1 * 1) = 8
1
2
3
4
5
6
7
8
9
10
var maximumUnits = function(boxTypes, truckSize) {
boxTypes.sort((a, b) => b[1] - a[1])
let size = 0, sum = 0
for (let i = 0; i < boxTypes.length; i++) {
sum += boxTypes[i][1] * (size + boxTypes[i][0] < truckSize ? boxTypes[i][0] : truckSize - size)
size += boxTypes[i][0]
if (size >= truckSize) break
}
return sum
};