在 Python 中查找可以放在卡车上的最大单位的程序
假设我们有一组表示为称为boxTypes的二维数组的框,其中boxTypes[i]包含两个元素[类型i的框数,类型i的每个框的单元数]。现在我们还有另一个值k,它是可以放在那辆卡车上的最大箱子数。只要箱子的数量不超过k,我们可以选择任何箱子放在卡车上。我们必须找到可以放在卡车上的最大单位总数。
所以,如果输入像boxTypes=[[2,4],[3,3],[4,2]],k=6,那么输出将是19,因为有
2盒1型,每盒包含4个单位
3盒2型,每盒包含3个单位
4盒类型3,每盒包含2个单位
当k=6时,我们可以取所有类型1和类型2的盒子,只有类型3的一个盒子,所以会有(2*4)+(3*3)+2=8+9+2=19个项目.
示例(Python)
让我们看看以下实现以获得更好的理解-
def solve(boxTypes, k): boxTypes.sort(key = lambda x : x[1], reverse = True) total = 0 fill = 0 for i in boxTypes: if fill + i[0] <= k: fill += i[0] total += i[0] * i[1] else: total += (k - fill) * i[1] break return total boxTypes = [[2,4],[3,3],[4,2]] k = 6 print(solve(boxTypes, k))
输入
[[2,4],[3,3],[4,2]], 6输出结果
19