首先看看这个漫画,我就是受这个启发,理解了动态规划:https://www.sohu.com/a/149075950_684445
知乎上大神解说:https://www.zhihu.com/question/23995189 说的很透彻
1.先说我的理解:最优子结构 从n开始推算起,每个步骤都有选与不选两种选择,写出一个与n有关的函数。这个就是最优子结构 可以理解为从上往下。或者 我是从哪里来?
2.但是写代码的时候,需要从底向上来推,采用迭代的方式,从0开始推算起。
3.状态定义:类似于数学里面的递归法,用n来表示通项。一般就是我们日常定义dp[i]与题目所求的关系。
4.状态转移: 最优子结构
5.初始值:一般考虑0 1 2 3 的时候