理解

递归是自顶向下解决问题,存在重复子问题问题;

动态规划为了解决重叠子问题,增加备忘录,自底向上换个方向遍历解决问题

本质: 空间换时间

一般结果两种情况:

  1. 最后一个结果就是最值,比如路径问题
  2. 求出所有结果,在从这些结果求最值,比如最长递增子序列

套路:

可解决题型如下最值问题:

  1. 爬楼梯
  2. 路径问题
  3. 子系列 — 子序列解题模板:最长回文子序列
  4. 背包问题 — https://leetcode.cn/problems/ones-and-zeroes/solution/gong-shui-san-xie-xiang-jie-ru-he-zhuan-174wv/

Untitled

  1. 股票买卖问题
  2. 打家劫舍问题
  3. 等等