阅读以下用动态规划解决的0-1背包问题的函数,假设背包的容量 W 是10kg,假设输入 4 个物品的重量 weights 分别为 1, 3, 4, 6(单位为kg),每个物品对应的价值 values 分别为 20, 30, 50, 60,则函数的输出为( )。 values[i - 1])
def knapsack(capacity, weights, values):
dp = [[0 for _ in range(capacity + 1)] for _ in range(len(weights) + 1)]
for i in range(1, len(weights) + 1):
for j in range(1, capacity + 1):
if weights[i - 1] <= j:
dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - weights[i - 1]] +
else:
dp[i][j] = dp[i - 1][j]
return dp[-1][-1]
weights = [1, 3, 4,6]
values = [20,30,50,60]
capacity = 10
print(knapsack(capacity, weights, values))