这周开始讲动态规划。动态规划问题是在多阶段问题中求取最优解问题(每步最优以保证全局最优)。
动态规划与贪心的最大区别在于贪心只能解决部分求最优解问题,而动态规划则能全部解决。但动态规划相较于贪心更加复杂,耗时更多。但可对动态规划进行优化,排除重复计算(以空间换取时间)——记忆化搜索,将已有结果存入数组,将再次用到此结果时直接调用数组数据而非重复计算。动态规划解决问题往往是自下而上的,而贪心往往相反。
递归与动态规划密切相关,一般递归问题都可用动态规划解决,最典型的斐波那契数列即为递归。但递归方法往往不能求其子段,这时便能体现出动态规划的优势。