Leetcode题目分类指南
目录
1 基本数据结构
1.1数组
1.1.1 基础
1.1.2 提高
1.1.3 区间问题(Interval)
1.1.4 Counter
1.1.5 CounterII
1.2 链表
1.2.1 基础
1.2.2 提高
1.3 栈
1.4 优先队列
1.5 堆
1.5.1 Easy
1.5.2 Medium
1.5.3 Hard
1.6 树
1.6.1基础
1.6.2 Preorder先序遍历
1.6.3 Preorder先序遍历II
1.6.4 BFS深度搜索
1.6.5 BST二叉查找树
1.6.6 重要程度
2 排序
3 查找
3.1 哈希表
3.1.1 Easy
3.1.2 Medium
3.1.3 Hard
3.2 二分查找
3.3 二叉搜索树
3.4 红黑树
3.5 并查集
4 高级设计和分析技术
4.1 动态规划
4.1.1 一维
4.1.2 二维
4.1.3 化简
4.1.4 其他高频经典题
4.2 贪心算法
4.3 回溯
4.4 分治和递归
4.4.1 分治
4.4.2递归
5 图算法
5.1 图
5.1.1 Easy
5.1.2 Medium
5.1.3 Hard
5.1.4 必做
5.2 DFS 和 BFS
5.4 拓扑排序
6 字符串问题(String)
6.1 基础
6.2 提高
6.3 子字符串Substring
6.4 回文(Palindrome)
6.5 括号问题(Parentheses)
6.6 子序列Subsequence
7 数学问题(Math)
7.1基础
7.2 求和问题
7.3很少考
8 矩阵问题(Matrix)
9 随机化算法
9.1 等概率抽样
9.2 蓄水池抽样
9.3 其他
10 设计题(Design)
11 位运算(Bit Manipulation)
11 高级数据结构
11.1 特殊树
11.1.1字典树(Trie,或前缀树,单词查找树)
11.1.2 线段树(Segment Tree)
11.1.3 树状数组(Binary_Index_Tree)
12 其他问题
12.1 记忆化
12.2极小化极大
12.3 计算几何学
12.3.1 扫描线算法(Sweep Line Algorithm)
12.3.2 几何
27 移除元素
26 删除排序数组中的重复项
80 删除排序数组中的重复项 II
277 搜寻名人
189 旋转数组
41 缺失的第一个正数
299 猜数字游戏
134 加油站
118 杨辉三角 很少考
119 杨辉三角2 很少考
169 多数元素 很少考
229 多数元素2 很少考
274 H指数
275 H指数2 Binary Search
243 最短单词距离
244 最短单词距离2
245 最短单词距离3
217 存在重复元素
219 存在重复元素2 很少考
220 存在重复元素3 很少考
55 跳跃游戏
45 跳跃游戏2
121 买卖股票的最佳时机
122 买卖股票的最佳时机2
123 买卖股票的最佳时机3
188 买卖股票的最佳时机4
309 最佳买卖股票时机含冷冻期
11 盛最多水的容器
42 接雨水
334 递增的三元子序列
128 最长连续子序列
164 最大间距 桶Bucket
287 寻找重复数
135 分发糖果 很少考
330 按要求补齐数组 很少考
4 寻找两个有序数组的中位数 很少考
321 拼接最大数 很少考
327 区间和的个数
289 生命游戏
57 插入区间
56 合并区间
252 会议室
253 会议室2
352 将数据流变为多个不相交区间 TreeMap
239 滑动窗口最大值
295 数据流的中位数
53 最大子序和
325 和等于k的最长子数组长度
209 长度最小的子数组
238 除自身以外数组的乘积
152 乘积最大子序列
228 汇总区间
163 缺失的区间
88 合并两个有序数组
75 颜色分类
283 移动零
376 摆动序列
280 摆动排序
324 摆动排序1
278 第一个错误的版本
35 搜索插入位置
33 搜索旋转排序数组
81 搜索旋转排序数组2
153 搜索旋转排序数组中的最小值
154 搜索旋转排序数组中的最小值2
162 寻找峰值
374 猜数字大小
34 在排序数组中查找元素的第一个和最后一个位置
349 两个数组的交集
350 两个数组的交集2
315 计算右侧小于当前元素的个数
300 最长上升子序列
354 俄罗斯套娃信封问题
206 反转链表
141 环形链表
24 两两交换链表中的节点
328 奇偶链表
92 反转链表2
237 删除链表中的节点
19 删除链表的倒数第N个结点
83 删除排序链表中的重复元素
203 移除链表元素
82 删除排序链表中的重复元素2
369 给单链表加1
2 两数相加
160 相交链表
21 合并两个有序链表
234 回文链表
143 重排链表
142 环形链表 II
148 排序链表
25 K个一组反转链表
61 旋转链表
86 分隔链表
23 合并K个排序链表
147 对链表进行插入排序
155 最小栈
232 用栈实现队列
225 用队列实现栈
150 逆波兰表达式求值
71 简化路径
388 文件的最长绝对路径
394 字符串解码
224 基本计算器
227 基本计算器2
385 迷你语法分析器
84 柱状图中最大的矩形
20 有效的括号
94 二叉树的中序遍历
42 接雨水
215 数组中的第K个最大元素
347 前 K 个高频元素
313 超级丑数 很少考
373 查找和最小的K对数字 很少考
218 天际线问题
332 重新安排行程
341 扁平化嵌套列表迭代器
703 数据流中的第K大元素
378 有序矩阵中第K小的元素
215 数组中的第K个最大元素
743 网络延迟时间
347 前K个高频元素
882 细分图中的可到达结点
23 合并K个排序链表
864 获取所有钥匙的最短路径
407 接雨水 II
218 天际线问题
871 最低加油次数
786 第K个最小的素数分数
239 滑动窗口最大值
295 数据流的中位数
144 二叉树的前序遍历
94 二叉树的中序遍历
145 二叉树的后序遍历
102 二叉树的层次遍历
543 二叉树的直径
100 相同的树
101 对称二叉树
226 翻转二叉树 preorder + BFS
257 二叉树的所有路径
112 路径总和
113 路径总和2
129 求根到叶子节点数字之和
298 二叉树最长连续序列
111 二叉树的最小深度
104 二叉树的最大深度
110 平衡二叉树
124 二叉树中的最大路径和
250 统计同值子树
366 寻找完全二叉树的叶子节点
337 打家劫舍 III postorder + preorder
107 二叉树的层次遍历2
103 二叉树的锯齿形层次遍历
199 二叉树的右视图 BFS + preorder
98 验证二叉搜索树 preorder
235 二叉搜索树的最近公共祖先 preorder
236 二叉树的最近公共祖先 postorder
108 将有序数组转换为二叉搜索树 binary search
109 有序链表转换二叉搜索树 binary search
173 二叉搜索树迭代器 inorder
230 二叉搜索树中第K小的元素 inorder
297 二叉树的序列化与反序列化 BFS
285 二叉搜索树中的顺序后继 inorder
270 最接近的二叉搜索树值 preorder
272 最接近的二叉搜索树值2 inorder
99 恢复二叉搜索树 inorder
156 上下翻转二叉树 很少考
114 二叉树展开为链表 很少考
255 验证前序遍历序列二叉搜索树 很少考
333 最大BST子树 很少考
222 完全二叉树的节点个数 很少考
105 从前序与中序遍历序列构造二叉树 很少考
106 从中序与后序遍历序列构造二叉树 很少考
116 填充每个节点的下一个右侧节点指针 重要
117 填充每个节点的下一个右侧节点指针2 重要
314 二叉树的垂直遍历 重要
96 不同的二叉搜索树 重要
95 不同的二叉搜索树2 很少考
331 验证二叉树的前序序列化 很少考
350 两个数组的交集 II
349 两个数组的交集
1122 数组的相对排序
179 最大数
148 排序链表
56 合并区间
853 车队
147 对链表进行插入排序
253 会议室 II
280 摆动排序
220 存在重复元素 III
1183 矩阵中1 的最大数量
327 区间和的个数
527 单词缩写
493 翻转对
164 最大间距
710 黑名单中的随机数
57 插入区间
315 计算右侧小于当前元素的个数
1 两数之和
202 快乐数
204 计数质数
359 日志速率限制器
463 岛屿的周长
136 只出现一次的数字
447 回旋镖的数量
350 两个数组的交集 II
387 字符串中的第一个唯一字符
290 单词规律
349 两个数组的交集
409 最长回文串
3 无重复字符的最长子串
718 最长重复子数组
535 TinyURL的加密与解密
974 和可被 K 整除的子数组
939 最小面积矩形
676 实现一个魔法字典
560 和为K的子数组
554 砖墙
94 二叉树的中序遍历
138 复制带随机指针的链表
347 前 K 个高频元素
18 四数之和
325 和等于 k 的最长子数组长度
525 连续数组
648 单词替换
187 重复的DNA序列
149 直线上最多的点数
85 最大矩形
1044 最长重复子串
711 不同岛屿的数量 II
726 原子的数量
76 最小覆盖子串
632 最小区间
336 回文对
381 O(1) 时间插入、删除和获取随机元素 - 允许重复
30 串联所有单词的子串
992 K 个不同整数的子数组
710 黑名单中的随机数
340 至多包含 K 个不同字符的最长子串
278 第一个错误的版本
35 搜索插入位置
33 搜索旋转排序数组
81 搜索旋转排序数组2
153 寻找旋转排序数组中的最小值
154 寻找旋转排序数组中的最小值2
162 寻找峰值
374 猜数字大小
34 在排序数组中查找元素的第一个和最后一个位置
349 两个数组的交集
350 两个数组的交集2
315 计算右侧小于当前元素的个数
300 最长上升子序列
354 俄罗斯套娃信封问题
378 有序矩阵中第K小的元素
718 最长重复子数组
911 在线选举
658 找到 K 个最接近的元素
668 乘法表中第k小的数
410 分割数组的最大值
98 验证二叉搜索树 preorder
235 二叉搜索树的最近公共祖先 preorder
236 二叉树的最近公共祖先 postorder
108 将有序数组转换为二叉搜索树 binary search
109 有序链表转换二叉搜索树 binary search
173 二叉搜索树迭代器 inorder
230 二叉搜索树中第K小的元素 inorder
297 二叉树的序列化与反序列化 BFS
285 二叉搜索树中的顺序后继 inorder
270 最接近的二叉搜索树值 preorder
272 最接近的二叉搜索树值2 inorder
99 恢复二叉搜索树 inorder
110 平衡二叉树
261 以图判树
323 无向图中连通分量的数目
200 岛屿数量
305 岛屿数量2
547 朋友圈
70 爬楼梯
62 不同路径
63 不同路径2
120 三角形最小路径和 很少考
279 完全平方数
139 单词拆分
375 猜数字大小2
312 戳气球
322 零钱兑换
256 粉刷房子
265 粉刷房子2
64 最小路径和
72 编辑距离
97 交错字符串
174 地下城游戏
221 最大正方形
85 最大矩形
363 矩形区域不超过 K 的最大数值和 TreeSet
198 打家劫舍
213 打家劫舍2
276 栅栏涂色
91 解码方法
10 正则表达式匹配
44 通配符匹配
53 最大子序和
121 买卖股票的最佳时机
5 最长回文子串
486 预测赢家
1027 最长等差数列
673 最长递增子序列的个数
300 最长上升子序列
322 零钱兑换
873 最长的斐波那契子序列的长度
516 最长回文子序列
714 买卖股票的最佳时机含手续费
1024 视频拼接
718 最长重复子数组
91 解码方法
1155 掷骰子的N种方法
361 轰炸敌人
464 我能赢吗
801 使序列递增的最小交换次数
279 完全平方数
467 环绕字符串中唯一的子字符串
221 最大正方形
983 最低票价
688 “马”在棋盘上的概率
1223 掷骰子模拟
898 子数组按位或操作
64 最小路径和
1139 最大的以 1 为边界的正方形
1049 最后一块石头的重量 II
343 整数拆分
1105 填充书架
152 乘积最大子序列
1143 最长公共子序列
647 回文子串
309 最佳买卖股票时机含冷冻期
813 最大平均值和的分组
877 石子游戏
139 单词拆分
96 不同的二叉搜索树
903 DI 序列的有效排列
552 学生出勤记录 II
546 移除盒子
410 分割数组的最大值
471 编码最短长度的字符串
1092 最短公共超序列
466 统计重复个数
72 编辑距离
943 最短超级串
85 最大矩形
887 鸡蛋掉落
1147 段式回文
639 解码方法 2
354 俄罗斯套娃信封问题
312 戳气球
689 三个无重叠子数组的最大和
964 表示数字的最少运算符
123 买卖股票的最佳时机 III
629 K个逆序对数组
10 正则表达式匹配
1074 元素和为目标值的子矩阵数量
97 交错字符串
871 最低加油次数
122 买卖股票的最佳时机2 简单
455 分发饼干 简单
392 判断子序列 简单
1029 两地调度 简单
406 根据身高重建队列 中等
621 任务调度器 中等
55 跳跃游戏 中等
714 买卖股票的最佳时机含手续费 中等
134 加油站 中等
452 用最少数量的箭引爆气球 中等
402 移掉K位数字 中等
376 摆动序列 中等
659 分割数组为连续子序列 中等
738 单调递增的数字 中等
435 无重叠区间 中等
649 Dota2参议院 中等
651 4键键盘 中等
484 寻找排列 中等
253 会议室2 中等
1053 交换一次的先前排列 中等
45 跳跃游戏2 困难
135 分发糖果 困难
316 去除重复字母 困难
321 拼接最大数 困难
44 通配符匹配 困难
630 课程表3 困难
502 IPO 困难
330 按要求补齐数组 困难
759 员工空闲时间 困难
358 K 距离间隔重排字符串 困难
78 子集
90 子集2
77 组合
39 组合总和
40 组合总和2
216 组合总和3
377 组合总和4 Dynamic Programming
254 因子的组合
46 全排列
47 全排列2
31 下一个排列 String
60 第k个排列 String
291 单词规律2
17 电话号码的字母组合
320 列举单词的全部缩写
93 复原IP地址 很少考
282 给表达式添加运算符
140 单词拆分2
351 安卓系统手势解锁
4 寻找两个有序数组的中位数 困难
53 最大子序和 简单
23 合并K个排序链表 困难
312 戳气球 困难
169 多数元素 简单
215 数组中的第K个最大元素 中等
241 为运算表达式设计优先级 中等
218 天际线问题 困难
327 区间和的个数 困难
315 计算右侧小于当前元素的个数 困难
282 给表达式添加运算符 困难
493 翻转对 困难
240 搜索二维矩阵2 中等
514 自由之路 困难
698 划分为k个相等的子集 中等
687 最长同值路径 简单
726 原子的数量 困难
248 中心对称数3 困难
247 中心对称数2 中等
544 输出比赛匹配对 中等
625 最小因式分解 中等
997 找到小镇的法官
1042 不邻接植花
743 网络延迟时间
1162 地图分析
1043 分隔数组以得到最大和
399 除法求值
310 最小高度树
207 课程表
133 克隆图
785 判断二分图
1129 颜色交替的最短路径
332 重新安排行程
802 找到最终的安全状态
210 课程表2
990 等式方程的可满足性
323 无向图中连通分量的数目
269 火星词典
1203 项目管理
839 相似字符串组
1153 字符串转化
928 尽量减少恶意软件的传播2
133 克隆图
399 除法求值
310 最小高度数
200 岛屿数量
286 墙与门
130 被围绕的区域
339 嵌套列表权重和
364 加权嵌套序列和2
127 单词接龙
51 N皇后
52 N皇后2
126 单词接龙2
207 课程表
210 课程表2
269 火星词典
1203 项目管理
329 矩阵中的最长递增路径
28 实现 strStr()
14 最长公共前缀
58 最后一个单词的长度
387 字符串中的第一个唯一字符
383 赎金信
344 反转字符串
151 翻转字符串里的单词
186 翻转字符串里的单词2
345 反转字符串中的元音字母
205 同构字符串
293 翻转游戏
294 翻转游戏2
290 单词规律
242 有效的字母异位词
49 字母异位词分组
249 移位字符串分组
87 扰乱字符串
179 最大数 很少考
6 Z字形变换 很少考
161 相隔为 1 的编辑距离
38 报数
358 K 距离间隔重排字符串
316 去除重复字母
271 字符串的编码与解码
168 Excel表列名称
171 Excel表列序号
13 罗马数字转整数
12 整数转罗马数字
273 整数转换英文表示
246 中心对称数
247 中心对称数2
248 中心对称数3 很少考
157 用 Read4 读取 N 个字
158 用 Read4 读取 N 个字符2
68 文本左右对齐
65 有效数字
76 最小覆盖子串 Sliding Window
30 串联所有单词的子串 Sliding Window
3 无重复字符的最长子串 Sliding Window
340 至多包含 K 个不同字符的最长子串 Sliding Window
395 至少有K个重复字符的最长子串 Sliding Window
159 至多包含两个不同字符的最长子串 Sliding Window
125 验证回文串
266 回文排列
5 最长回文子串
9 回文数
214 最短回文串
336 回文对
131 分割回文串
132 分割回文串2
267 回文排列2
20 有效的括号
22 括号生成
32 最长有效括号
241 为运算表达式设计优先级
301 删除无效的括号
392 判断子序列
115 不同的子序列
187 重复的DNA序列 很少考
7 整数反转
165 比较版本号
66 加一
8 字符串转换整数 (atoi)
258 各位相加
67 二进制求和
43 字符串相乘
29 两数相除
69 x 的平方根
50 Pow(x, n)
367 有效的完全平方数
365 水壶问题
204 计数质数
1 Two Sum
167 Two Sum II - Input array is sorted
15 3Sum
16 3Sum Closest 很少考
259 3Sum Smaller 很少考
18 4Sum
231 2的幂
326 3的幂
342 4的幂
372 超级次方
233 数字1的个数
319 灯泡开关
292 Nim 游戏
202 快乐数
400 第N个数字
263 丑数
264 丑数2
306 累加数
172 阶乘后的零
343 整数拆分
396 旋转函数
390 消除游戏
386 字典序排数
357 计算各个位数不同的数字个数
360 有序转化数组
397 整数替换
368 最大整除子集
48 旋转图像
54 螺旋矩阵
59 螺旋矩阵2
73 矩阵置零
311 稀疏矩阵的乘法
329 列举单词的全部缩写
378 有序矩阵中第K小的元素
74 搜索二维矩阵
240 搜索二维矩阵2
370 区间加法
79 单词搜索
296 最佳的碰头地点
361 轰炸敌人
317 离建筑物最近的距离
302 包含全部黑色像素的最小矩形
36 有效的数独
37 解数独
384 打乱数组
380 常数时间插入、删除和获取随机元素
381 138O(1) 时间插入、删除和获取随机元素 - 允许重复
138 复制带随机指针的链表
382 链表随机节点
398 随机数索引
470 用 Rand7() 实现 Rand10()
478 在圆内随机生成点
359 日志速率限制器
346 数据流中的移动平均值 Sliding Window
362 敲击计数器
281 锯齿迭代器
284 顶端迭代器
251 展开二维向量
288 单词的唯一缩写
170 两数之和3 - 数据结构设计
348 判定井字棋胜负
379 电话目录管理系统
353 贪吃蛇
146 LRU缓存机制
355 设计推特
303 区域和检索 - 数组不可变
304 二维区域和检索 - 矩阵不可变
307 区域和检索 - 数组可修改 BIT & ST
308 二维区域和检索 - 可变 BIT & ST
421 数组中两个数的最大异或值
389 找不同
136 只出现一次的数字
137 只出现一次的数字II
260 只出现一次的数字III
393 UTF-8编码验证
318 最大单词长度乘积
191 位1的个数
338 比特位计数
411 最短特异单词缩写
898 子数组按位或操作
78 子集
1131 绝对值表达式的最大值
421 数组中两个数的最大异或值
642 设计搜索自动补全系统
676 实现一个魔法字典
336 回文对
745 前缀和后缀搜索
1032 字符流
208 实现 Trie (前缀树)
648 单词替换
212 单词搜索 II
692 前K个高频单词
1023 驼峰式匹配
1065 字符串的索引对
677 键值映射
715 Range 模块
218 天际线问题
327 区间和的个数
1157 子数组中占绝大多数的元素
850 矩形面积 II
493 翻转对
308 二维区域和检索 - 可变
315 计算右侧小于当前元素的个数
307 区域和检索 - 数组可修改
218 天际线问题
327 区间和的个数
493 翻转对
308 二维区域和检索 - 可变
315 计算右侧小于当前元素的个数
307 区域和检索 - 数组可修改
329 矩阵中的最长递增路径
292 Nim 游戏
375 猜数字大小II
486 预测赢家
464 我能赢吗
294 翻转游戏II
218 天际线问题 困难
391 完美矩形 困难
587 安装栅栏 困难
1266 访问所有点的最小时间 简单
1232 缀点成线 简单