Merge pull request #954 from gaoyangu/master

修改416. 分割等和子集 和 494. 目标和 里动规五部曲步骤1中 i 和 j 的错误使用
This commit is contained in:
程序员Carl
2021-12-20 22:29:49 +08:00
committed by GitHub
3 changed files with 5 additions and 5 deletions

View File

@ -77,9 +77,9 @@
1. 确定dp数组以及下标的含义
01背包中dp[i] 表示: 容量为j的背包所背的物品价值可以最大为dp[j]。
01背包中dp[j] 表示: 容量为j的背包所背的物品价值可以最大为dp[j]。
**套到本题dp[i]表示 背包总容量是i,最大可以凑成i的子集总和为dp[i]**
**套到本题dp[j]表示 背包总容量是j,最大可以凑成j的子集总和为dp[j]**
2. 确定递推公式

View File

@ -146,7 +146,7 @@ if (abs(S) > sum) return 0; // 此时没有方案
1. 确定dp数组以及下标的含义
dp[j] 表示填满j包括j这么大容积的包有dp[i]种方法
dp[j] 表示填满j包括j这么大容积的包有dp[j]种方法
其实也可以使用二维dp数组来求解本题dp[i][j]:使用 下标为[0, i]的nums[i]能够凑满j包括j这么大容量的包有dp[i][j]种方法。

View File

@ -10,11 +10,11 @@ S 和 sum都是固定的那此时问题就转化为01背包问题数列中
1. 确定dp数组以及下标的含义
**dp[j] 表示填满j包括j这么大容积的包有dp[i]种方法**
**dp[j] 表示填满j包括j这么大容积的包有dp[j]种方法**
2. 确定递推公式
dp[i] += dp[j - nums[j]]
dp[j] += dp[j - nums[i]]
**注意:求装满背包有几种方法类似的题目,递推公式基本都是这样的**