特点:
- 用值作为DP 维度 (其他类型都是以位置坐标做维度)
- DP过程就是填写矩阵
- 可以滚动数组优化
背包:
- State:
f[i][S] 前i 个物品,取出一些能否组成和为S - Function:
f[i][S] = f[i-1][S-a[i]] or f[i-1][S] - Initialize :
f[i][0] = True; f[0][1... target] = False - Answer : f[n][m]
检查左右的f[n][j]
时间复杂度O(n*S),滚动数组优化
例子
特点:
背包:
时间复杂度O(n*S),滚动数组优化
例子