动态规划:经典题目汇总

文章目录

  • 动态规划:经典题目汇总
    • 一、动态规划的定义
    • 二、经典例题
      • 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. 一次可以走1、2、3阶台阶;
  2. 一次可以走[1、2、3、4、5…]阶台阶;
  3. 相邻两步的步伐不能相同;
  4. 使用最小花费爬楼梯;

爬楼梯及扩展题目

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 赛车

其他题目

动态规划:经典题目汇总相关推荐

  1. 动态规划经典题目汇总

    http://www.cppblog.com/doer-xee/archive/2009/12/05/102629.html 转载之前先Orz一下: [s:19] Robberies http://a ...

  2. 动态规划经典题目_动态规划经典题目:鸡蛋掉落(附视频讲解)

    题目: 思路: 先放上视频讲解 动态规划经典题目:鸡蛋掉落https://www.zhihu.com/video/1225199247848513536 纠正:视频里的状态转移方程漏写了一个+1,意思 ...

  3. 动态规划经典题目-最小权三角剖分

    文章目录 一.题目描述 二.解题思路 1. 定义状态 2. 定义状态转移方程 3. 初始化 4. 计算方式 三.代码实现 四.执行结果 五.思考 一.题目描述 设A是顶点为0,1,-,n-1的n凸多边 ...

  4. 动态规划经典题目——最大子矩阵和

    一.题目 题目描述:现给出一个N*N矩阵,要求求出拥有最大和的子矩阵的和.例子如下图所示: 它的最大子矩阵的和为15: 二.解题思路 此题的解法与动态规划经典题目--最大连续子序列之和题目思想一样,只 ...

  5. 动态规划经典题目整理

    动态规划经典题目整理 背包问题 最长公共子串问题 连续数组最大和问题 持续增加中.... 背包问题 复杂度 O(nW)O(nW)O(nW) nnn为物品种类,WWW是背包的重量 目的:使得背包中的物品 ...

  6. 动态规划经典题目-数据压缩之图像压缩

    文章目录 一.题目描述 二.解题思路 1. 定义状态 2. 定义状态转移方程 3. 初始化 4. 计算方式 三.代码实现 四.执行结果 五.思考 一.题目描述 ​ 计算机中的图像由一系列像点构成,每个 ...

  7. poj动态规划经典题目

    列表一:经典题目题号: 容易: 1018, 1050, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1191,1208, 1276, 1322, 1 ...

  8. 动态规划经典题目总结

    微信公众号 在算法中,动态规划题目算是比较经典的一类题目.在找工作中,不管是笔试,还是面试,我们经常会遇到用动态规划来解决问题的情况,有时候面试官还需要我们现场手写出动态规划解法的代码.因此,在求职中 ...

  9. 动态规划经典题目——数塔问题

    一.题目 数塔问题 :要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少? 二.解题思路 动态规划解题思路可详见另一篇文章.数塔中元素用二维数组a[][]表示 ①定义状态 ...

最新文章

  1. Docker(八):Docker Compose
  2. oracle对查询结果求和_某国企Oracle数据库误truncate table恢复案例
  3. 16位汇编 int 10h和int 21h 显示字符串实例
  4. Java IO基准测试:Quasar与异步ForkJoinPool与ManagedBlock
  5. 大数据的乘法实现——C语言
  6. {WP7/WP8·获取屏幕大小}
  7. linux系统 安卓系统安装教程,Linux系统下安装android sdk的方法步骤
  8. kali Linux下wifi密码安全测试(1)虚拟机下usb无线网卡的挂载 【转】
  9. 第五次网页前端培训(JS的基本使用)
  10. 用Python操作PPT的办公自动化教程
  11. 数据仓库(2)数仓、大数据与传统数据库的区别
  12. 7440 GT540
  13. kityminder-editor 百度脑图与my-mind 使用体验
  14. 用qt合并ts视频文件
  15. Symbian 应用程序签名指南 和 Symbian Signed 认证指南
  16. 2019-11-11
  17. 二进制中,0为什么作为偶数,1为什么作为奇数?
  18. 2022年茶艺师(高级)考试题及模拟考试
  19. 31道Java面试题,免费mysql服务器
  20. c++|类静态成员之英雄类

热门文章

  1. Mac终端下出现bogon的解决方案
  2. Java 算法之 “删除链表中倒数第k个节点”【钢镚核恒】
  3. 一起开心-11月纳新题解
  4. XAMPP详细安装教程
  5. Specified class is an interface异常
  6. 这家中国广告商被指责靠木马病毒刷广告
  7. HikariCP - no suitable driver error
  8. 将邮件模板内容拷贝到邮箱中(含样式)
  9. 保护商标,企业应该这样做
  10. 【Ajax异步交互与跨域访问】Json数据格式