动态规划常用于的一个问题就是求最值, 比如说最常见的求最长递增子序列啊等待。
其实动态规划的问题核心仍然是穷举,想一下求最值,那最可能的就是把所有结果列出来,谁最大要谁。
动态规划大部分是自底向上的,所以也就脱离了递归,更多的是采用for循环的迭代;
动态规划的典型类型:
背包问题;
打家劫舍;
股票问题;
子序列问题;
动态规划常常用于求解多阶段决策问题
动态规划问题的问法:只问最优解(常和最值联系在一起),不问具体的解;
动态规划类的题目我们一般情况下按照这三部曲进行:
一般按照这三步后能够写出来一个程序,为了保险起见,我们可以带一个例子进去检验。
最关键的就是确定好dp的含义后去寻找递推关系;
509. 斐波那契数
70. 爬楼梯
746. 使用最小花费爬楼梯
121. 买卖股票的最佳时机
64. 最小路径和
198. 打家劫舍
213. 打家劫舍 II
5. 最长回文子串
120. 三角形最小路径和