在Python中,通过将项目保存在一个包中来找到最大的价格
假设我们有两个数字列表。一种称为权重,另一种称为值。它们的长度相同。我们还有两个值,分别称为容量和计数。这里weights[i]和values[i]代表第i个项目的权重和值。我们最多可以容纳最多重量,最多可以容纳总数,并且每个项目只能复制一份,因此我们必须找到可以获取的最大价值。
因此,如果输入像权重=[2,2,4,6]值=[15,15,20,35]容量=8count=3,那么输出将是50,因为我们可以选择前3个项目,因为总重量为8。
示例
让我们看下面的实现以更好地理解-
class Solution:
def solve(self, weights, values, capacity, count):
items = list(zip(weights, values))
def dp(i, cp, ct):
if i == len(items) or ct == 0:
return 0.0
w, v = items[i]
ans = dp(i + 1, cp, ct)
if cp >= w:
ans = max(ans, dp(i + 1, cp - w, ct - 1) + v)
return ans
return int(dp(0, capacity, count))
ob = Solution()
weights = [2, 2, 4, 6]
values = [15, 15, 20, 35]
capacity = 8
count = 3
print(ob.solve(weights, values, capacity, count))输入值
[2, 2, 4, 6], [15, 15, 20, 35], 8, 3
输出结果
50
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短