今日任务
目录
01背包问题 二维数组
理论基础:代码随想录
01 背包
有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。
暴力解法:
- 每一件物品其实只有两个状态,取或者不取,所以可以使用回溯法搜索出所有的情况
- 暴力的解法是指数级别的时间复杂度。进而才需要动态规划的解法来进行优化
二维dp数组
- 1 确定dp数组及含义:
dp[i][j] 表示从下标为[0-i]的物品里任意取,放进容量为j的背包,价值总和最大是多少
- 2 递推公式:dp[i][j] = max(dp[i - 1][j], dp[