遍历顺序
- 01背包
- 二维DP数组:先遍历物品,再遍历背包容量(从小到大)。或者反过来。都可以。先遍历物品更容易理解。
- 一维DP数组:必须先遍历物品,再从大到小遍历背包容量。
- 完全背包
- 换零钱的最少硬币数:
- 二维DP数组:先遍历硬币,再遍历钱数(从小到大)。或者反过来。都可以。先遍历硬币更容易理解。
- 一维DP数组:先遍历硬币,再遍历钱数(从小到大)。或者反过来。都可以。先遍历硬币更容易理解。
- 换零钱的方法数(就是求组合数):先遍历硬币,再遍历钱数(从小到大)。
- 求排列总数:先遍历背包容量(从小到大,从索引0或1开始),再遍历物品(从索引0开始)。
- 换零钱的最少硬币数: