2023-04-26 力扣LeetCode上的DP动态规划问题分类汇总
2023-04-26 力扣LeetCode上的DP动态规划问题分类汇总#
1、线性 DP#
- 最经典单串:
300. 最长上升子序列 - 最经典双串:
1143. 最长公共子序列 - 经典问题:
120. 三角形最小路径和
53. 最大子序和
152. 乘积最大子数组
887. 鸡蛋掉落(DP+二分)
354. 俄罗斯套娃信封问题 - 打家劫舍系列: (打家劫舍3 是树形DP)
198. 打家劫舍
213. 打家劫舍 II - 股票系列:
121. 买卖股票的最佳时机
122. 买卖股票的最佳时机 II
123. 买卖股票的最佳时机 III
188. 买卖股票的最佳时机 IV
309. 最佳买卖股票时机含冷冻期
714. 买卖股票的最佳时机含手续费 - 字符串匹配系列
72. 编辑距离
44. 通配符匹配
10. 正则表达式匹配
2、区间 DP#
516. 最长回文子序列
730. 统计不同回文子字符串
1039. 多边形三角剖分的最低得分
664. 奇怪的打印机
312. 戳气球
3、背包 DP#
416. 分割等和子集 (01背包-要求恰好取到背包容量)
494. 目标和 (01背包-求方案数)
322. 零钱兑换 (完全背包)
518. 零钱兑换 II (完全背包-求方案数)
474. 一和零 (二维费用背包)
4、树形 DP#
124. 二叉树中的最大路径和
1245. 树的直径 (邻接表上的树形DP)
543. 二叉树的直径
333. 最大 BST 子树
337. 打家劫舍 III
5、状态压缩 DP#
464. 我能赢吗
526. 优美的排列
935. 骑士拨号器
1349. 参加考试的最大学生数
6、数位 DP#
233. 数字 1 的个数
902. 最大为 N 的数字组合
1015. 可被 K 整除的最小整数
7、计数型 DP#
计数型DP都可以以组合数学的方法写出组合数,然后dp求组合数
62. 不同路径
63. 不同路径 II
96. 不同的二叉搜索树 (卡特兰数)
1259. 不相交的握手 (卢卡斯定理求大组合数模质数)
8、递推型 DP#
所有线性递推关系都可以用矩阵快速幂做,可以O(logN),最典型是斐波那契数列
70. 爬楼梯
509. 斐波那契数
935. 骑士拨号器
957. N 天后的牢房
1137. 第 N 个泰波那契数
9、概率型 DP#
10、博弈型 DP#
策梅洛定理,SG 定理,minimax
- 翻转游戏
293. 翻转游戏
294. 翻转游戏 II - Nim游戏
292. Nim 游戏
石子游戏
877. 石子游戏
1140. 石子游戏 II - 井字游戏
348. 判定井字棋胜负
794. 有效的井字游戏
1275. 找出井字棋的获胜者
11、记忆化搜索#
本质是 dfs + 记忆化,用在状态的转移方向不确定的情况
329. 矩阵中的最长递增路径
576. 出界的路径数
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix