Dynamic Programming
动态规划将问题分解为重叠子问题,存储子问题解避免重复计算,自底向上或自顶向下(记忆化)求解。
用途
高效求解具有最优子结构与重叠子问题的优化问题。
机制
识别最优子结构:最优解包含子问题最优解。自底向上:按规模递增填表。自顶向下:递归+记忆化。经典:背包、最长公共子序列、编辑距离、矩阵链乘。
用例
- 算法设计
- 优化问题
- 序列分析
动态规划将问题分解为重叠子问题,存储子问题解避免重复计算,自底向上或自顶向下(记忆化)求解。
高效求解具有最优子结构与重叠子问题的优化问题。
识别最优子结构:最优解包含子问题最优解。自底向上:按规模递增填表。自顶向下:递归+记忆化。经典:背包、最长公共子序列、编辑距离、矩阵链乘。