用动态规划解决01背包问题python代码
时间: 2023-08-29 15:10:10 浏览: 107
利用动态规划解决01背包问题
下面是用动态规划解决01背包问题的Python代码:
```python
def knapsack(W, wt, val, n):
# 创建动态规划数组
K = [[0 for x in range(W+1)] for x in range(n+1)]
# 填充动态规划数组
for i in range(n+1):
for w in range(W+1):
if i==0 or w==0:
K[i][w] = 0
elif wt[i-1] <= w:
K[i][w] = max(val[i-1] + K[i-1][w-wt[i-1]], K[i-1][w])
else:
K[i][w] = K[i-1][w]
return K[n][W]
```
其中,函数 knapsack 的参数如下:
- W:背包的容量;
- wt:物品的重量列表;
- val:物品的价值列表;
- n:物品的数量。
函数返回 01 背包问题的最优解。
阅读全文