Dynamic Programming

DP 基本有两个模板:

自上而下:先有最初的结果,求出最后的结果。

Paste_Image.png

自下而上: 先有最后的结果,然后求出最初的结果。

Paste_Image.png

什么情况下适合用动态规划呢:

  1. Counting ( 例如coing change problem, 给出 固定的 amount 和不同的硬币,然后算出有多少的方法)
  2. 计算最大值,最小值(其实这个和counting 很像的,就是counting 出来后选出最大或者最小值)
  3. Yes/No 问题。

动态规划的4个要点:

  1. 有状态转移 (这个状态的转移的sub-problem 是一样的)
  2. 方程 (就是转移方程,例如方程是以 2% 的概率转移到另一个状态的)
  3. 初始化 (最初的状态是什么)
  4. 最终的状态 (最终状态)

这个状态可以是从最后到开始,也可以从最开始到最后。

DP 题目总结:
1.Matrix Dynamic Programming:

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

推荐阅读更多精彩内容