动态规划,简称 DP ,如果某一问题有很多重叠子问题,使用动态规划是很有效的。
    即动态规划中的每一个状态一定是由上一个状态推导出来的,这一点区别于 贪心,贪心没有状态推导,而是从局部直接选择最优的。
    对于动态规划问题,可以分为以下五个步骤来进行解决:

    • 确定 dp 数组以及下标的含义
    • 确定递推公式
    • dp 数组如何初始化
    • 确定遍历顺序
    • 举例推导 dp 数组

    在动态规划出现问题的时候,找问题的最好方法就是把 dp 数组打印出来,看看究竟是不是按照自己的思路推导的。