动态规划算法01背包 python代码实现
时间: 2023-07-23 13:04:33 浏览: 103
这是关于01背包问题的动态规划算法。采用C++语言完成的,代码间有注释.rar
下面是Python实现动态规划算法解决01背包问题的代码:
```
def knapsack01_dp(weights, values, capacity):
n = len(weights)
dp = [[0] * (capacity + 1) for _ in range(n + 1)]
for i in range(1, n + 1):
for j in range(1, capacity + 1):
if j >= weights[i - 1]:
dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - weights[i - 1]] + values[i - 1])
else:
dp[i][j] = dp[i - 1][j]
return dp[n][capacity]
```
其中,weights和values分别表示物品的重量和价值,capacity表示背包的容量。函数返回在背包容量为capacity的情况下可获得的最大价值。
阅读全文