动态规划三部曲

1)定义数组元素含义

2)寻找递推关系 dp

3)找初始值

参考博客:https://zhuanlan.zhihu.com/p/91582909 

解题步骤:

1、确定需要保存在dp表中的状态。(关键:确定影响状态的维度和每个元素代表的含义

一维:dp[n]=f(dp[n-1])   

二维:dp[m][n]=f(dp[m-1][n], dp[m][n-1])

2、确定当前状态和之前状态之间的递推关系 (状态转移方程)

3、填充dp表

   自顶向下 (递归)

   自底向上(常用)

4、从dp表中读取最终状态,即结果

 

LeetCode常见题

1、打家劫舍系列

2、不同路径

3、最小花费爬楼梯

4、最大子序和

5、最小路径和

6、编辑距离

7、交错字符串

8、不同子序列

9、三角形的最小路径和

10、股票买卖

11、零钱兑换

12、单词拆分

 13、最长回文子序列 

https://leetcode-cn.com/problems/longest-palindromic-subsequence/