分治、递归、动态规划
三者之间没有根本区别,关键看有无最优的子结构。
共性:找到重复子问题
差异性:动态规划寻找最优子结构,中间可以淘汰次优解
动态规划、贪心算法
动态规划是寻找局部,全局最优解
贪心算法是找局部最优解,不一定得到全局最优解
回顾下递归四步骤:
- terminator
- process
- drill dowm
- restore current status
分治五步骤:
1.终止条件
2.拆分为子问题
3.调用下一层递归
4.处理以及合并返回的值
5.存储当前层的值
动态规划
分为自顶向下和自底向上的求解方法,在动态规划算法中会细讲