分治、贪心、动态规划都是要将问题划分为一个子问题,然后通过解决子问题进而求解最终问题

分治:

将问题分解为结构相似独立子问题,递归求解各个子问题,然后合并子问题的解来求解最终问题。

动态规划:

适用于子问题存在重叠的情况,各个子问题包含公共子子问题,并且下一个阶段的求解是建立在上一个阶段的基础上,也就是说当前状态是对之前所有状态的总结。主要有两种:递归+备忘录逆序递推

需要满足:有重叠子问题;最优子结构;无后效性

贪心:

总是作出当前看起来是最好的选择,不从整体上加以考虑

必须满足:最优子结构和无后效性