mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 00:43:04 +08:00
Merge pull request #954 from gaoyangu/master
修改416. 分割等和子集 和 494. 目标和 里动规五部曲步骤1中 i 和 j 的错误使用
This commit is contained in:
@ -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. 确定递推公式
|
||||
|
||||
|
@ -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]种方法。
|
||||
|
||||
|
@ -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]]
|
||||
|
||||
**注意:求装满背包有几种方法类似的题目,递推公式基本都是这样的**。
|
||||
|
||||
|
Reference in New Issue
Block a user