01背包问题的一维状态转移方程的推导
前提摘要
前面这篇博客中:
我们已经推导出了01背包问题的二维数组dp状态转移方程公式:
假设有N种不同物品,且每种物品只有1个,第 i 个物品的重量表示为w[i],价值表示为p[i],现在有一个背包,其承重是W,现要求该背包装物品能得到的最大价值是多少?
dp[i][0] = 0,dp[0][j] = 0
- if w[i] <= W :dp[i][j] = Math.max(dp[i-1][j], dp[i-1][j - w[i]] + p[i])
- else:dp[i][j] = dp[i-1][j]
二维数组中元素dp[i][j]的含义是:
物品可选范围为