DP之 0-1 背包问题
程序员文章站
2022-07-12 09:14:36
...
0-1 背包问题
import numpy as np
def knapsack(w, v, C): # 重量 和 价值 一一对应的数组, 背包的容量
# 定义存储空间 并 初始化
mem = np.zeros((len(w) + 1, C + 1))
for i in range(1, len(w) + 1):
for j in range(1, C + 1):
# 拿当前第 i 个物品(i 是从1编序号开始的。。。w 、v 数组 和 mem数组不对应!)
if w[i - 1] <= j:
mem[i][j] = max(mem[i, j], mem[i - 1, j], mem[i - 1, j - w[i - 1]] + v[i - 1])
# 不拿第 i 件物品!!!
else:
mem[i, j] = mem[i - 1, j]
return mem
上一篇: DP 之 0/1 背包
下一篇: DP之0-1背包问题