【理论】动态规划

如果某一问题有很多重叠子问题,使用动态规划是最有效的。动态规划中每一个状态一定是由上一个状态推导出来的,这一点就区分于贪心,贪心没有状态推导,而是从局部直接选最优的,

解题步骤

  1. 确定dp数组(dp table)以及下标的含义
  2. 确定递推公式
  3. dp数组如何初始化
  4. 确定遍历顺序
  5. 举例推导dp数组

debug

把dp数组打印出来,看看究竟是不是按照自己思路推导的

写代码之前一定要把状态转移在dp数组的上具体情况模拟一遍

然后再写代码

  • 如果代码没通过就打印dp数组,看看是不是和自己预先推导的哪里不一样。
    • 如果打印出来和自己预先模拟推导是一样的,那么就是自己的递归公式、初始化或者遍历顺序有问题了。
    • 如果和自己预先模拟推导的不一样,那么就是代码实现细节有问题。

版权声明:
作者:Zhang, Hongxing
链接:http://zhx.info/archives/579
来源:张鸿兴的学习历程
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录