总结见背包问题总结
对于动态规划的问题抽象成背包问题的时候
我们要记得和背包的属性进行对应,这样方便问题的解决
比如如下的类比
需要类比的属性:
- 背包容量
- 物品的重量
- 物品的价值
- 是否可重复(01背包还是完全背包)
- 排列问题还是组合问题
有关遍历顺序
如果求组合数就是外层for循环遍历物品,内层for遍历背包。
如果求排列数就是外层for遍历背包,内层for循环遍历物品。
如果把遍历nums(物品)放在外循环,遍历target的作为内循环的话,举一个例子:计算dp[4]的时候,结果集只有 {1,3} 这样的集合,不会有{3,1}这样的集合,因为nums遍历放在外层,3只能出现在1后面!