题目
背包问题
思路
当前背包的最大价值=max{前一个,和拿这一个的容量加上前面的容量最大值}
代码
def knapSack(capacity,weight,value,num):
dp = [[0 for _ in range(num+1)]for _ in range(0,capacity+1)]
for i in range(1,num+1):
for j in range(1,capacity+1):
if j >= weight[i-1]:
dp[j][i] = max(dp[j][i-1],dp[j-weight[i-1]][i-1]+value[i-1])
else:
dp[j][i] = dp[j][i-1]
return dp[-1][-1]