【发布时间】:2020-12-05 17:01:36
【问题描述】:
我正在尝试练习我的python技能,所以我尝试“玩”背包问题。
我用过这个算法
def knapSack(W, wt, val, n):
if n == 0 or W == 0:
return 0
if (wt[n-1] > W):
return knapSack(W, wt, val, n-1)
else:
return max(
val[n-1] + knapSack(
W-wt[n-1], wt, val, n-1),
knapSack(W, wt, val, n-1))
我不知道最后如何计算剩余容量, 例如,如果我的 val 列表是 [4,2,1,5,3] 并且权重是 [3,5,1,2,4] 并且我的容量(W)是 4,那么它将返回 6 并且剩余容量为 1 我怎样才能得到这个 1?
谢谢!
【问题讨论】:
标签: python recursion knapsack-problem