请你将一些箱子装在 一辆卡车 上。给你一个二维数组 boxTypes ,其中 boxTypes[i] = [numberOfBoxesi, numberOfUnitsPerBoxi] :
numberOfBoxesi 是类型 i 的箱子的数量。
numberOfUnitsPerBoxi 是类型 i 每个箱子可以装载的单元数量。
整数 truckSize 表示卡车上可以装载 箱子 的 最大数量 。只要箱子数量不超过 truckSize ,你就可以选择任意箱子装到卡车上。
返回卡车可以装载 单元 的 最大 总数。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/maximum-units-on-a-truck
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
可以先排序再将由大到小放入
class Solution(object):
def maximumUnits(self, boxTypes, truckSize):
"""
:type boxTypes: List[List[int]]
:type truckSize: int
:rtype: int
"""
boxTypes.sort(key=lambda x: x[1], reverse=True)
#按第二项排序#
sum = 0
for numberOfBoxes, numberOfUnitsPerBox in boxTypes:
if numberOfBoxes >= truckSize:
sum += truckSize * numberOfUnitsPerBox
break
#如果不能完全放完则将剩下的空填满#
sum += numberOfBoxes * numberOfUnitsPerBox
truckSize -= numberOfBoxes
return sum
...