目录
01背包问题二维
问题描述:有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。
def bagproblem1(bagsize, weight, value):
rows, cols = len(weight), bagsize + 1
dp = [[0] * cols for _ in range(rows)]
# 初始化dp数组.
for i in range(rows):
dp[i][0] = 0
for j in range(1, cols):
if weight[0] <= j:
dp[0][j] = value[0]
# 更新dp数组: 先遍历物品, 再遍历背包.
for i in range(1, rows):
for j in range(1, cols):
if weight[i] > j: # 说明背包装不下当前物品.
dp[