在 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
以上是 在 Python 中查找可以放在卡车上的最大单位的程序 的全部内容, 来源链接: utcz.com/z/349126.html