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