动态规划
- 动态规划的“规划”就是“填表格”的意思,所以动态规划也叫表格法,它是“以空间换时间”思想的体现;“动态”思路是“自底向上”
- 动态规划是从一个小规模问题出发逐步得到大问题的解,并记录中间过程----通过动态转移方程,每一步计算都尽可能的利用之前计算的结果;
- 使用动态规划求解的条件:1.求一个问题的最优解(最大值或最小值);2.把大问题可以分成子问题,所有子问题的最优解构成了大问题的最优解;3.子问题间还重叠更小子问题,所以需要记录之前计算的结果;
- 解题方法:自上而下的递归思路分析(但会出现重叠子问题),故一般用自下而上的循环来实现;
贪婪(贪心)算法
- 贪婪算法总是做出在当前看来最好的选择,即它不从整体角度去考虑,仅对局部最优解感兴趣。因此,只有当那些局部最优策略能产生全局最优策略的时候,才能用贪婪算法;
- 用来求问题最优解,区别于动态规划,例如不适合求0-1背包问题;
- 最优子结构性质、无后效性、自顶向下;