动态规划三部曲
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/