mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-08-03 05:59:04 +08:00
Update
This commit is contained in:
@ -160,11 +160,16 @@ dp[j] 表示:填满j(包括j)这么大容积的包,有dp[j]种方法
|
||||
|
||||
那么只要搞到nums[i]的话,凑成dp[j]就有dp[j - nums[i]] 种方法。
|
||||
|
||||
举一个例子,nums[i] = 2: dp[3],填满背包容量为3的话,有dp[3]种方法。
|
||||
|
||||
那么只需要搞到一个2(nums[i]),有dp[3]方法可以凑齐容量为3的背包,相应的就有多少种方法可以凑齐容量为5的背包。
|
||||
例如:dp[j],j 为5,
|
||||
|
||||
那么需要把 这些方法累加起来就可以了,dp[j] += dp[j - nums[i]]
|
||||
* 已经有一个1(nums[i]) 的话,有 dp[4]种方法 凑成 dp[5]。
|
||||
* 已经有一个2(nums[i]) 的话,有 dp[3]种方法 凑成 dp[5]。
|
||||
* 已经有一个3(nums[i]) 的话,有 dp[2]中方法 凑成 dp[5]
|
||||
* 已经有一个4(nums[i]) 的话,有 dp[1]中方法 凑成 dp[5]
|
||||
* 已经有一个5 (nums[i])的话,有 dp[0]中方法 凑成 dp[5]
|
||||
|
||||
那么凑整dp[5]有多少方法呢,也就是把 所有的 dp[j - nums[i]] 累加起来。
|
||||
|
||||
所以求组合类问题的公式,都是类似这种:
|
||||
|
||||
|
Reference in New Issue
Block a user