动态规划与分治法类似
相同:都是先将一个问题分成若干个子问题
不同:分治法是一个一个独立的去解决(可能导致运算成本过大)
动态规划是将一个子问题的解记录在一个表中,当其余子问题中有合适的解就直接代入,减少运算成本
动态规划通常用于解最优性质的问题
通常的步骤:
1.找出最优解的性质,并刻画其结构特征
2.递归地定义最优解的值
3.以自底向上的方式计算出最优值
4.根据计算最优值时得到的信息,构造一个最优解
只需要算出最优值:步骤1-3,要最优解:1-4
动态规划的两个性质:最优子结构、重叠子问题