题目:
有N件物品和⼀个最多能被重量为W 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每
件物品只能⽤⼀次
,求解将哪些物品装⼊背包⾥物品价值总和最⼤。
示例:
思路(二维数组):
动态规划五部曲:
1.
确定
dp
数组以及下标的含义
使⽤⼆维数组,即dp[i][j]
表示从下标为
[0-i]
的物品⾥任意取,放进容量
为
j
的背包,价值总和最⼤是多少
。
2.
确定递推公式
再回顾⼀下
dp[i][j]
的含义:从下标为
[0-i]
的物品⾥任意取,放进容量为
j
的背包,价值总和最⼤是多少。
那么可以有两个⽅向推出来
dp[i][j]
,
(1)
由dp[i - 1][j]
推出,即背包容量为
j
,⾥⾯不放物品
i
的最⼤