跳至主要內容

动态规划

大约 21 分钟

动态规划

1 动态规划入门

  • 简单 10
  • 中等 34
  • 困难 2
题目难度代码
第 1 天
509. 斐波那契数open in new window简单javaopen in new window
1137. 第 N 个泰波那契数open in new window简单javaopen in new window
第 2 天
70. 爬楼梯open in new window简单javaopen in new window
746. 使用最小花费爬楼梯open in new window简单javaopen in new window
第 3 天
198. 打家劫舍open in new window中等javaopen in new window
213. 打家劫舍 IIopen in new window中等javaopen in new window
740. 删除并获得点数open in new window中等javaopen in new window
第 4 天
55. 跳跃游戏open in new window中等javaopen in new window
45. 跳跃游戏 IIopen in new window中等javaopen in new window
第 5 天
53. 最大子数组和open in new window简单javaopen in new window
918. 环形子数组的最大和open in new window中等javaopen in new window
第 6 天
152. 乘积最大子数组open in new window中等javaopen in new window
1567. 乘积为正数的最长子数组长度open in new window中等javaopen in new window
第 7 天
1014. 最佳观光组合open in new window中等javaopen in new window
121. 买卖股票的最佳时机open in new window简单javaopen in new window
122. 买卖股票的最佳时机 IIopen in new window中等javaopen in new window
第 8 天
309. 最佳买卖股票时机含冷冻期open in new window中等javaopen in new window
714. 买卖股票的最佳时机含手续费open in new window中等javaopen in new window
第 9 天
139. 单词拆分open in new window中等javaopen in new window
42. 接雨水open in new window困难javaopen in new window
第 10 天
413. 等差数列划分open in new window中等javaopen in new window
91. 解码方法open in new window中等javaopen in new window
第 11 天
264. 丑数 IIopen in new window中等javaopen in new window
96. 不同的二叉搜索树open in new window中等javaopen in new window
第 12 天
118. 杨辉三角open in new window简单javaopen in new window
119. 杨辉三角 IIopen in new window简单javaopen in new window
第 13 天
931. 下降路径最小和open in new window中等javaopen in new window
120. 三角形最小路径和open in new window中等javaopen in new window
第 14 天
1314. 矩阵区域和open in new window中等javaopen in new window
304. 二维区域和检索 - 矩阵不可变open in new window中等javaopen in new window
第 15 天
62. 不同路径open in new window中等javaopen in new window
63. 不同路径 IIopen in new window中等javaopen in new window
第 16 天
64. 最小路径和open in new window中等javaopen in new window
221. 最大正方形open in new window中等javaopen in new window
第 17 天
5. 最长回文子串open in new window中等javaopen in new window
516. 最长回文子序列open in new window中等javaopen in new window
第 18 天
300. 最长递增子序列open in new window中等javaopen in new window
376. 摆动序列open in new window中等javaopen in new window
第 19 天
392. 判断子序列open in new window简单javaopen in new window
1143. 最长公共子序列open in new window中等javaopen in new window
72. 编辑距离open in new window困难javaopen in new window
第 20 天
322. 零钱兑换open in new window中等javaopen in new window
518. 零钱兑换 IIopen in new window中等javaopen in new window
第 21 天
377. 组合总和 Ⅳopen in new window中等javaopen in new window
343. 整数拆分open in new window中等javaopen in new window
279. 完全平方数open in new window中等javaopen in new window

 

2 $动态规划基础

  • 简单 5
  • 中等 42
  • 困难 2
题目难度代码
第 1 天 基础动态规划
509. 斐波那契数open in new window简单javaopen in new window
70. 爬楼梯open in new window简单javaopen in new window
746. 使用最小花费爬楼梯open in new window简单javaopen in new window
第 2 天 线性动态规划
53. 最大子数组和open in new window简单javaopen in new window
198. 打家劫舍open in new window中等javaopen in new window
213. 打家劫舍 IIopen in new window中等javaopen in new window
第 3 天 线性动态规划
$256. 粉刷房子open in new window 中等javaopen in new window
$265. 粉刷房子 IIopen in new window 困难javaopen in new window
121. 买卖股票的最佳时机open in new window简单javaopen in new window
第 4 天 线性动态规划
714. 买卖股票的最佳时机含手续费open in new window中等javaopen in new window
309. 最佳买卖股票时机含冷冻期open in new window中等javaopen in new window
152. 乘积最大子数组open in new window中等javaopen in new window
第 5 天 线性动态规划
$487. 最大连续 1 的个数 IIopen in new window 中等javaopen in new window
376. 摆动序列open in new window中等javaopen in new window
第 6 天 线性动态规划
$1746. 经过一次操作后的最大子数组和open in new window 中等javaopen in new window
$1230. 抛掷硬币open in new window 中等javaopen in new window
第 7 天 字符串上的动态规划 / 最长递增子序列 / 最长公共子序列
1143. 最长公共子序列open in new window中等javaopen in new window
1035. 不相交的线open in new window中等javaopen in new window
第 8 天 字符串上的动态规划 / 最长递增子序列 / 最长公共子序列
712. 两个字符串的最小 ASCII 删除和open in new window中等javaopen in new window
300. 最长递增子序列open in new window中等javaopen in new window
第 9 天 字符串上的动态规划 / 最长递增子序列 / 最长公共子序列
673. 最长递增子序列的个数open in new window中等javaopen in new window
1048. 最长字符串链open in new window中等javaopen in new window
第 10 天 字符串上的动态规划 / 最长递增子序列 / 最长公共子序列
646. 最长数对链open in new window中等javaopen in new window
368. 最大整除子集open in new window中等javaopen in new window
第 11 天 字符串上的动态规划 / 最长递增子序列 / 最长公共子序列
647. 回文子串open in new window中等javaopen in new window
5. 最长回文子串open in new window中等javaopen in new window
第 12 天 字符串上的动态规划 / 最长递增子序列 / 最长公共子序列
$1055. 形成字符串的最短路径open in new window 中等javaopen in new window
516. 最长回文子序列open in new window中等javaopen in new window
第 13 天 最小(最大)路径目标
64. 最小路径和open in new window中等javaopen in new window
$562. 矩阵中最长的连续 1 线段open in new window 中等javaopen in new window
$1182. 与目标颜色间的最短距离open in new window 中等javaopen in new window
第 14 天 经典动态规划
343. 整数拆分open in new window中等javaopen in new window
238. 除自身以外数组的乘积open in new window中等javaopen in new window
第 15 天 记忆化
139. 单词拆分open in new window中等javaopen in new window
$254. 因子的组合open in new window 中等javaopen in new window
329. 矩阵中的最长递增路径open in new window困难javaopen in new window
第 16 天 计数动态规划
62. 不同路径open in new window中等javaopen in new window
63. 不同路径 IIopen in new window中等javaopen in new window
第 17 天 计数动态规划
576. 出界的路径数open in new window中等javaopen in new window
650. 只有两个键的键盘open in new window中等javaopen in new window
$361. 轰炸敌人open in new window 中等javaopen in new window
第 18 天 合并间隔
96. 不同的二叉搜索树open in new window中等javaopen in new window
1130. 叶值的最小代价生成树open in new window中等javaopen in new window
第 19 天 硬币兑换 / 组合和
322. 零钱兑换open in new window中等javaopen in new window
518. 零钱兑换 IIopen in new window中等javaopen in new window
第 20 天 硬币兑换 / 组合和
39. 组合总和open in new window中等javaopen in new window
279. 完全平方数open in new window中等javaopen in new window
第 21 天 背包问题
416. 分割等和子集open in new window中等javaopen in new window
494. 目标和open in new window中等javaopen in new window

 

3 $动态规划进阶

  • 简单 0
  • 中等 23
  • 困难 27
题目难度代码
第 1 天 经典动态规划
1884. 鸡蛋掉落-两枚鸡蛋open in new window中等javaopen in new window
887. 鸡蛋掉落open in new window困难javaopen in new window
第 2 天 线性动态规划
123. 买卖股票的最佳时机 IIIopen in new window困难javaopen in new window
188. 买卖股票的最佳时机 IVopen in new window困难javaopen in new window
第 3 天 线性动态规划
1751. 最多可以参加的会议数目 IIopen in new window困难javaopen in new window
1235. 规划兼职工作open in new window困难javaopen in new window
第 4 天 线性动态规划
$1259. 不相交的握手open in new window 困难javaopen in new window
1478. 安排邮筒open in new window困难javaopen in new window
第 5 天 字符串上的动态规划 / 最长递增子序列 / 最长公共子序列
115. 不同的子序列open in new window困难javaopen in new window
435. 无重叠区间open in new window中等javaopen in new window
第 6 天 字符串上的动态规划 / 最长递增子序列 / 最长公共子序列
452. 用最少数量的箭引爆气球open in new window中等javaopen in new window
72. 编辑距离open in new window困难javaopen in new window
第 7 天 字符串上的动态规划 / 最长递增子序列 / 最长公共子序列
$1682. 最长回文子序列 IIopen in new window 中等javaopen in new window
$1062. 最长重复子串open in new window 中等javaopen in new window
第 8 天 字符串上的动态规划 / 最长递增子序列 / 最长公共子序列
1092. 最短公共超序列open in new window困难javaopen in new window
10. 正则表达式匹配open in new window困难javaopen in new window
第 9 天 字符串上的动态规划 / 最长递增子序列 / 最长公共子序列
$1216. 验证回文字符串 IIIopen in new window 困难javaopen in new window
$727. 最小窗口子序列open in new window 困难javaopen in new window
第 10 天 到达目标的最小(最大)路径
741. 摘樱桃open in new window困难javaopen in new window
1463. 摘樱桃 IIopen in new window困难javaopen in new window
第 11 天 记忆化
140. 单词拆分 IIopen in new window困难javaopen in new window
$351. 安卓系统手势解锁open in new window 中等javaopen in new window
第 12 天 计数类动态规划
688. 骑士在棋盘上的概率open in new window中等javaopen in new window
$750. 角矩形的数量open in new window 中等javaopen in new window
第 13 天 计数类动态规划
$651. 4 键键盘open in new window 中等javaopen in new window
$634. 寻找数组的错位排列open in new window 中等javaopen in new window
第 14 天 计数类动态规划
$1692. 计算分配糖果的不同方式open in new window 困难javaopen in new window
$418. 屏幕可显示句子的数量open in new window 中等javaopen in new window
第 15 天 合并间隔
312. 戳气球open in new window困难javaopen in new window
$1246. 删除回文子数组open in new window 困难javaopen in new window
第 16 天 硬币兑换 / 组合求和
40. 组合总和 IIopen in new window中等javaopen in new window
983. 最低票价open in new window中等javaopen in new window
第 17 天 背包问题
1049. 最后一块石头的重量 IIopen in new window中等javaopen in new window
879. 盈利计划open in new window困难javaopen in new window
第 18 天 博弈论动态规划
486. 预测赢家open in new window中等javaopen in new window
1406. 石子游戏 IIIopen in new window困难javaopen in new window
第 19 天 博弈论动态规划
1510. 石子游戏 IVopen in new window困难javaopen in new window
464. 我能赢吗open in new window中等javaopen in new window
1140. 石子游戏 IIopen in new window中等javaopen in new window
第 20 天 位运算
698. 划分为 k 个相等的子集open in new window中等javaopen in new window
$1066. 校园自行车分配 IIopen in new window 中等javaopen in new window
1434. 每个人戴不同帽子的方案数open in new window困难javaopen in new window
第 21 天 数字类动态规划
902. 最大为 N 的数字组合open in new window困难javaopen in new window
600. 不含连续 1 的非负整数open in new window困难javaopen in new window
$1067. 范围内的数字计数open in new window 困难javaopen in new window
第 22 天 树上的动态规划
$298. 二叉树最长连续序列open in new window 中等javaopen in new window
$549. 二叉树中最长的连续序列open in new window 中等javaopen in new window
第 23 天 树上的动态规划
$333. 最大 BST 子树open in new window 中等javaopen in new window
$1273. 删除树节点open in new window 中等javaopen in new window
$568. 最大休假天数open in new window 困难javaopen in new window

 

4 $动态规划大师

  • 简单 0
  • 中等 15
  • 困难 45
题目难度代码
第 1 天 线性动态规划
123. 买卖股票的最佳时机 IIIopen in new window困难javaopen in new window
188. 买卖股票的最佳时机 IVopen in new window困难javaopen in new window
第 2 天 线性动态规划
1751. 最多可以参加的会议数目 IIopen in new window困难javaopen in new window
1235. 规划兼职工作open in new window困难javaopen in new window
第 3 天 线性动态规划
$1259. 不相交的握手open in new window 困难javaopen in new window
1478. 安排邮筒open in new window困难javaopen in new window
第 4 天 线性动态规划
32. 最长有效括号open in new window困难javaopen in new window
1105. 填充书架open in new window中等javaopen in new window
第 5 天 计数动态规划
1277. 统计全为 1 的正方形子矩阵open in new window中等javaopen in new window
$361. 轰炸敌人open in new window 中等javaopen in new window
第 6 天 计数动态规划
1155. 掷骰子的 N 种方法open in new window中等javaopen in new window
1269. 停在原地的方案数open in new window困难javaopen in new window
第 7 天 计数动态规划
1575. 统计所有可行路径open in new window困难javaopen in new window
1639. 通过给定词典构造目标字符串的方案数open in new window困难javaopen in new window
第 8 天 计数动态规划
940. 不同的子序列 IIopen in new window困难javaopen in new window
1866. 恰有 K 根木棍可以看到的排列数目open in new window困难javaopen in new window
1420. 生成数组open in new window困难javaopen in new window
第 9 天 概率型动态规划
688. 骑士在棋盘上的概率open in new window中等javaopen in new window
837. 新 21 点open in new window中等javaopen in new window
第 10 天 间隔型动态规划
1547. 切棍子的最小成本open in new window困难javaopen in new window
1312. 让字符串成为回文串的最少插入次数open in new window困难javaopen in new window
第 11 天 间隔型动态规划
1278. 分割回文串 IIIopen in new window困难javaopen in new window
1000. 合并石头的最低成本open in new window困难javaopen in new window
第 12 天 间隔型动态规划
664. 奇怪的打印机open in new window困难javaopen in new window
546. 移除盒子open in new window困难javaopen in new window
第 13 天 博弈论
$294. 翻转游戏 IIopen in new window 中等javaopen in new window
1406. 石子游戏 IIIopen in new window困难javaopen in new window
1510. 石子游戏 IVopen in new window困难javaopen in new window
1140. 石子游戏 IIopen in new window中等javaopen in new window
第 14 天 位掩码型动态规划
526. 优美的排列open in new window中等javaopen in new window
1879. 两个数组最小的异或值之和open in new window困难javaopen in new window
第 15 天 位掩码型动态规划
980. 不同路径 IIIopen in new window困难javaopen in new window
847. 访问所有节点的最短路径open in new window困难javaopen in new window
第 16 天 位掩码型动态规划
1125. 最小的必要团队open in new window困难javaopen in new window
691. 贴纸拼词open in new window困难javaopen in new window
第 17 天 位掩码型动态规划
1655. 分配重复整数open in new window困难javaopen in new window
1349. 参加考试的最大学生数open in new window困难javaopen in new window
第 18 天 位掩码型动态规划
1434. 每个人戴不同帽子的方案数open in new window困难javaopen in new window
1799. N 次操作后的最大分数和open in new window困难javaopen in new window
1815. 得到新鲜甜甜圈的最多组数open in new window困难javaopen in new window
第 19 天 数字类动态规划
1012. 至少有 1 位重复的数字open in new window困难javaopen in new window
$1067. 范围内的数字计数open in new window 困难javaopen in new window
第 20 天 树上的动态规划
865. 具有所有最深节点的最小子树open in new window中等javaopen in new window
1372. 二叉树中的最长交错路径open in new window中等javaopen in new window
第 21 天 树上的动态规划
894. 所有可能的满二叉树open in new window中等javaopen in new window
337. 打家劫舍 IIIopen in new window中等javaopen in new window
第 22 天 树上的动态规划
124. 二叉树中的最大路径和open in new window困难javaopen in new window
1130. 叶值的最小代价生成树open in new window中等javaopen in new window
第 23 天 树上的动态规划
968. 监控二叉树open in new window困难javaopen in new window
1483. 树节点的第 K 个祖先open in new window困难javaopen in new window
第 24 天 数据结构优化
1425. 带限制的子序列和open in new window困难javaopen in new window
446. 等差数列划分 II - 子序列open in new window困难javaopen in new window
第 25 天 数据结构优化
975. 奇偶跳open in new window困难javaopen in new window
1687. 从仓库到码头运输箱子open in new window困难javaopen in new window
第 26 天 混合
$1055. 形成字符串的最短路径open in new window 中等javaopen in new window
174. 地下城游戏open in new window困难javaopen in new window
第 27 天 混合
514. 自由之路open in new window困难javaopen in new window
1473. 粉刷房子 IIIopen in new window困难javaopen in new window
第 28 天 混合
$471. 编码最短长度的字符串open in new window困难javaopen in new window
1240. 铺瓷砖open in new window困难javaopen in new window

 

(全文完)