动态规划:经典题目汇总
动态规划:经典题目汇总
文章目录
- 动态规划:经典题目汇总
- 一、动态规划的定义
- 二、经典例题
- 3.1 一维的DP:斐波那契数列、[使用最小花费爬楼梯](https://leetcode-cn.com/problems/min-cost-climbing-stairs/)
- 3.2 二维的DP:不同路径1、不同路径2、最小路径和
- 3.3 字符串变化的DP:最长公共子序列
- 三、动态规划实战题目
- 3.1 爬楼梯
- 3.2 最小路径和
- 3.3 最大子序列和、乘积最大子序列
- 3.4 零钱兑换(和爬楼梯问题有异曲同工之妙)
- 3.5 打家劫舍1、打家劫舍2、打家劫舍3
- 3.6 股票买卖问题
- 四、高阶的动态规划
- 4.1 复杂度来源
- 4.2 编辑距离
- 五、其他题目
- 5.1 最长上升子序列
- 5.2 解码方法
- 5.3 最长有效括号
- 5.4 最大矩形
- 5.5 不同的子序列
- 5.6 赛车
一、动态规划的定义
动态规划(动态递推):Dynamic Programing
- 找重复性
- 最优子结构
- 数学归纳
关键点:
- 和递归、分治没有根本区别(关键看有没有最优子结构);
- 共性:找到重复子问题;
- 差异性:最优子结构、中途可以淘汰次优解;
动态规划:
- 重复子问题、最优子结构
- 存储中间状态:dp
- 递推公式
二、经典例题
3.1 一维的DP:斐波那契数列、使用最小花费爬楼梯
3.2 二维的DP:不同路径1、不同路径2、最小路径和
- 分治+记忆化搜索
不同路径1、2、最小路径和
3.3 字符串变化的DP:最长公共子序列
字符串DP:最长公共子序列
三、动态规划实战题目
3.1 爬楼梯
延伸:
- 一次可以走1、2、3阶台阶;
- 一次可以走[1、2、3、4、5…]阶台阶;
- 相邻两步的步伐不能相同;
- 使用最小花费爬楼梯;
爬楼梯及扩展题目
3.2 最小路径和
- DP方法
- 递归+缓存
动态规划:最小路径和
3.3 最大子序列和、乘积最大子序列
动态规划:最大子序列和、乘积最大子序列
3.4 零钱兑换(和爬楼梯问题有异曲同工之妙)
- 方法一:暴力求解
- 方法二:BFS
- 方法三:DP
动态规划:零钱兑换
3.5 打家劫舍1、打家劫舍2、打家劫舍3
dp[i][0]
dp[i]
- m、n
打家劫舍1、2
3.6 股票买卖问题
股票买卖的六道经典问题
四、高阶的动态规划
4.1 复杂度来源
- 状态维度:更多维度
- 状态转移方程:方程更复杂
4.2 编辑距离
- BFS、双端BFS
- DP
编辑距离
五、其他题目
5.1 最长上升子序列
5.2 解码方法
5.3 最长有效括号
5.4 最大矩形
5.5 不同的子序列
5.6 赛车
其他题目
动态规划:经典题目汇总相关推荐
- 动态规划经典题目汇总
http://www.cppblog.com/doer-xee/archive/2009/12/05/102629.html 转载之前先Orz一下: [s:19] Robberies http://a ...
- 动态规划经典题目_动态规划经典题目:鸡蛋掉落(附视频讲解)
题目: 思路: 先放上视频讲解 动态规划经典题目:鸡蛋掉落https://www.zhihu.com/video/1225199247848513536 纠正:视频里的状态转移方程漏写了一个+1,意思 ...
- 动态规划经典题目-最小权三角剖分
文章目录 一.题目描述 二.解题思路 1. 定义状态 2. 定义状态转移方程 3. 初始化 4. 计算方式 三.代码实现 四.执行结果 五.思考 一.题目描述 设A是顶点为0,1,-,n-1的n凸多边 ...
- 动态规划经典题目——最大子矩阵和
一.题目 题目描述:现给出一个N*N矩阵,要求求出拥有最大和的子矩阵的和.例子如下图所示: 它的最大子矩阵的和为15: 二.解题思路 此题的解法与动态规划经典题目--最大连续子序列之和题目思想一样,只 ...
- 动态规划经典题目整理
动态规划经典题目整理 背包问题 最长公共子串问题 连续数组最大和问题 持续增加中.... 背包问题 复杂度 O(nW)O(nW)O(nW) nnn为物品种类,WWW是背包的重量 目的:使得背包中的物品 ...
- 动态规划经典题目-数据压缩之图像压缩
文章目录 一.题目描述 二.解题思路 1. 定义状态 2. 定义状态转移方程 3. 初始化 4. 计算方式 三.代码实现 四.执行结果 五.思考 一.题目描述 计算机中的图像由一系列像点构成,每个 ...
- poj动态规划经典题目
列表一:经典题目题号: 容易: 1018, 1050, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1191,1208, 1276, 1322, 1 ...
- 动态规划经典题目总结
微信公众号 在算法中,动态规划题目算是比较经典的一类题目.在找工作中,不管是笔试,还是面试,我们经常会遇到用动态规划来解决问题的情况,有时候面试官还需要我们现场手写出动态规划解法的代码.因此,在求职中 ...
- 动态规划经典题目——数塔问题
一.题目 数塔问题 :要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少? 二.解题思路 动态规划解题思路可详见另一篇文章.数塔中元素用二维数组a[][]表示 ①定义状态 ...
最新文章
- Docker(八):Docker Compose
- oracle对查询结果求和_某国企Oracle数据库误truncate table恢复案例
- 16位汇编 int 10h和int 21h 显示字符串实例
- Java IO基准测试:Quasar与异步ForkJoinPool与ManagedBlock
- 大数据的乘法实现——C语言
- {WP7/WP8·获取屏幕大小}
- linux系统 安卓系统安装教程,Linux系统下安装android sdk的方法步骤
- kali Linux下wifi密码安全测试(1)虚拟机下usb无线网卡的挂载 【转】
- 第五次网页前端培训(JS的基本使用)
- 用Python操作PPT的办公自动化教程
- 数据仓库(2)数仓、大数据与传统数据库的区别
- 7440 GT540
- kityminder-editor 百度脑图与my-mind 使用体验
- 用qt合并ts视频文件
- Symbian 应用程序签名指南 和 Symbian Signed 认证指南
- 2019-11-11
- 二进制中,0为什么作为偶数,1为什么作为奇数?
- 2022年茶艺师(高级)考试题及模拟考试
- 31道Java面试题,免费mysql服务器
- c++|类静态成员之英雄类