动态规划的思路: 递归+记忆化 -> 递推: 通过先写出递归,然后加上记忆化(缓存)方式来做,然后再进一步思考它的递推方法 动态规划的关键点是: 状态的定义:定义成一个数组 opt[n],dp[n],fib[n]通过状态来定义状态转移方程:opt[n] = best_of(opt[n-1], opt[n-2],….),即 dp 方程最优子结构:也就是说第 n-1 个状态有一个最优的子结构能推导出第 n 个状态