参考
题目
- 416:分割等和子集(中等)
- 494:目标和(中等)。转化为背包问题后,可以使用状态压缩,优化空间。
- 474:一和零(中等)。参考动态规划(转换为 0-1 背包问题)和官方题解。
– dp[i][j][k] 表示能够使用 j 个 0 和 k 个 1 组成[0,i]区间字符串的最大数量。状态转移方程为dp[i][j][k]=max(dp[i-1][j][k], dp[i-1][j-n0][k-n1]+1),第一项表示不选字符串i,第二项表示选择字符串i。由于上式仅依赖于i-1,所以可以用2个二维数组或1个二维数组优化,使用一个二维数组时,更新顺序为从后向前。 - 879:盈利计划(困难)
- 322:零钱兑换
- 279:完全平方数。和322零钱兑换很相似。