动态规划 的总结

一 、动态规划做题套路总结:

  • dp[] 数组的维度
  • dp[i] 代表的含义是什么
  • 最终的结果是 dp[n] 还是 fun( dp[] ) ,也就是要对dp数组做一个函数,如取dp数组中的最大值max dp[]
  • 弄清楚状态转移方程
  常见的转移方程
  dp[i] = dp[i - 1] , dp[i - 2]
  dp[i] = dp[i - j] , !dp[i - j]
  etc
  • 实在不行,就先列出dp数组的前几项,然后找规律

二、做过的题目总结

建议按顺序尝试

简单动态规划
53 最大子序和
746 使用最小花费爬楼梯
1025 除数博弈
70 爬楼梯

中等动态规划
650 只有两个键的键盘
剑指offer63 股票的最大利润
198 打家劫舍
221 最大正方形
931 下降路径最小和
14 14- I. 剪绳子
62 不同路径

高难动态规划
32 最长有效括号

三、动态规划优化:

  1. 从前往后,避免递归
  2. 空间优化,滚动数组 或者 常数级变量

四、目前还不太会的动态规划

  1. 多维的动态规划,一看就很烦

    例题 有哪些

  2. 有的不明所以,不知道 dp[][] 应该代表什么

    例题有

  3. 有的不会写状态方程

    例题有

五、对于 动态规划 的一些有利于理解的文章

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 简述 动态规划是一种将一个复杂问题分解为多个简单的子问题求解的方法。将子问题的答案存储在记忆数据结构中,当子问题再...
    BlowMan阅读 321评论 0 1
  • 动态规划 通过子问题递推求解最优的方法, 动态规划常常适用于有重叠子问题和最优子结构性质的问题 。 解题思路 动态...
    GeorgeDon阅读 135评论 0 0
  • 动态规划的三大步骤 动态规划,无非就是利用历史记录,来避免我们的重复计算。而这些历史记录,我们得需要一些变量来保存...
    郑小才阅读 189评论 0 0
  •   为了准备三月份蓝桥杯的比赛和提高下自己数据结构和算法方面的水平,所以开始在leetcode上刷起了题。刚刚开始...
    冯宇祺阅读 3,620评论 0 5
  • 一、分治,回溯,递归,动态规划 1.1、递归的代码模板 1.2、分治(Divide & Conquer)的代码模板...
    王小鹏的随笔阅读 525评论 0 0