01背包问题的Python解决方案
def knapsack(weights, values, capacity):
n = len(weights)
dp = [0] * (capacity + 1)
for i in range(1, n + 1):
for j in range(capacity, weights[i - 1] - 1, -1):
dp[j] = max(dp[j], dp[j - weights[i - 1]] + values[i - 1])
return dp[capacity]
weights = [2, 3, 4, 5]
values = [3, 4, 5, 6]
capacity = 8
print(knapsack(weights, values, capacity))
1KB
文件大小:
评论区