基础篇
1. 数组/栈/队列
-
1、66. 加一
简单
数组
-
2、821. 字符的最短距离
简单
数组
-
3、1381. 设计一个支持增量操作的栈
中等
栈
-
4、394. 字符串解码
中等
栈
-
5、232. 用栈实现队列
简单
栈
队列
设计
-
6、768. 最多能完成排序的块 II
困难
单调递增栈
排序
2. 链表
-
7、24. 两两交换链表中的节点
中等
迭代
递归
-
8、61. 旋转链表
中等
链表
双指针
-
9、109. 有序链表转换二叉搜索树
中等
递归
双指针
中序遍历
-
10、160. 相交链表
简单
双指针
-
11、142. 环形链表 II
中等
双指针
-
12、146. LRU缓存机制
中等
设计
哈希表
双向链表
3. 树
-
13、104. 二叉树的最大深度
简单
递归
bfs广度优先
-
14、100. 相同的树
简单
递归
深度优先
广度优先
-
15、129. 求根到叶子节点数字之和
中等
深度优先
广度优先
-
16、513. 找树左下角的值
中等
深度优先
广度优先
-
17、297. 二叉树的序列化与反序列化
困难
深度优先
广度优先
-
18、987. 二叉树的垂序遍历
中等
深度优先
排序
4. 哈希表
-
19、1. 两数之和
简单
哈希表
-
20、347. 前 K 个高频元素
中等
哈希表
大顶堆
-
21、447. 回旋镖的数量
中等
哈希表
数学组合
-
22、3. 无重复字符的最长子串
中等
哈希表
滑动窗口
-
23、30. 串联所有单词的子串
困难
哈希表
滑动窗口
-
24、37. 解数独
困难
回溯
5. 双指针
-
25、35. 搜索插入位置
简单
二分查找
双指针
-
26、74. 搜索二维矩阵
中等
二分查找
双指针
二维数组映射成一维数组
-
27、26. 删除排序数组中的重复项
简单
双指针
-
28、876. 链表的中间结点
简单
快慢指针
-
29、1052. 爱生气的书店老板
中等
双指针
-
30、239. 滑动窗口最大值
困难
双指针
进阶篇
6. 高频考题
31、树的遍历系列
-
144. 二叉树的前序遍历
中等
递归
迭代
-
94. 二叉树的中序遍历
中等
递归
迭代
-
145. 二叉树的后序遍历
中等
递归
迭代
-
102. 二叉树的层序遍历
中等
递归
迭代
32、反转链表系列
-
206. 反转链表
简单
双指针
-
92. 反转链表 II
中等
双指针
-
25. K 个一组翻转链表
困难
双指针
递归
33、位运算系列
- 78. 子集
中等
回溯
位运算
34、动态规划
-
70. 爬楼梯
简单
动态规划
递归
-
62.不同路径
-
121.买卖股票的最佳时机
-
122.买卖股票的最佳时机 II
-
123.买卖股票的最佳时机 III
-
188.买卖股票的最佳时机 IV
-
309.最佳买卖股票时机含冷冻期
-
714.买卖股票的最佳时机含手续费
35、有效的括号
-
20. 有效的括号
简单
栈
-
32.最长有效括号
36、设计系列
-
641.设计循环双端队列
-
146.LRU 缓存机制
中等
设计
哈希表
双向链表
-
1206.设计跳表
困难
跳表
37、前缀和系列
-
560. 和为K的子数组
中等
前缀和
-
371.每个元音包含偶数次的最长子字符串
-
308
-
525、 连续数组
-
1139、最大的以 1 为边界的正方形
-
1176
-
1182
-
1277、统计全为 1 的正方形子矩阵
-
1292、元素和小于等于阈值的正方形的最大边长
-
1314、矩阵区域和
-
1504、统计全 1 子矩形
7. 前缀树
-
38、208. 实现 Trie (前缀树)
中等
前缀树
-
39、677. 键值映射
中等
前缀树
哈希表
-
40、面试题 17.17. 多次搜索
中等
前缀树
8. 并查集
-
41、547. 朋友圈
中等
并查集
-
42、924.尽量减少恶意软件的传播
困难
并查集
-
43、1319. 连通网络的操作次数
中等
并查集
9. 跳表
- 44、1206. 设计跳表
困难
跳表
10. 剪枝
-
45、814. 二叉树剪枝
中等
减枝
-
46、39. 组合总和
中等
回溯
减枝
-
47、40. 组合总和 II
中等
回溯
减枝
11. RK 和 KMP
- 48/49、28. 实现 strStr()
简单
RK
KMP
12. 堆
-
50、215. 数组中的第K个最大元素
中等
小顶堆
-
51、1046. 最后一块石头的重量
简单
大顶堆
-
52、23. 合并K个升序链表
困难
小顶堆
合并k个有序数组
-
53、451. 根据字符出现频率排序
中等
大顶堆
哈希表
-
54、378. 有序矩阵中第K小的元素
中等
大顶堆
排序
二分查找
-
55、1054. 距离相等的条形码
中等
大顶堆
专题篇
13. 二分
-
56、69. x 的平方根
简单
二分查找
-
57、278. 第一个错误的版本
简单
二分查找
-
58、162. 寻找峰值
中等
二分查找
-
59、1712. 将数组分成三个子数组的方案数
中等
二分查找
前缀和
-
60、4.寻找两个正序数组的中位数
困难
二分查找
-
61、778. 水位上升的泳池中游泳
困难
二分查找
dfs
14. 滑动窗口
-
62、1456. 定长子串中元音的最大数目
中等
滑动窗口
-
63、837. 新21点
中等
动态规划
滑动窗口
-
64、438. 找到字符串中所有字母异位词
中等
滑动窗口
-
65、76. 最小覆盖子串
困难
滑动窗口
15. 位运算
-
66、268. 丢失的数字
简单
异或
-
67、面试题 01.01. 判定字符是否唯一
简单
左移
与
或
16. 搜索
-
68、401. 二进制手表
简单
回溯
-
69、52. N皇后 II
困难
回溯
-
70、695. 岛屿的最大面积
中等
深度优先搜索
-
71、1162. 地图分析
中等
bfs
-
72、113. 路径总和 II
中等
深度优先搜索
-
73、1255. 得分最高的单词集合
困难
回溯
-
74、301. 删除无效的括号
困难
bfs
17. 背包问题
-
75、416. 分割等和子集
中等
动态规划
0-1背包
-
76、494. 目标和
中等
动态规划
0-1背包
-
77、322. 零钱兑换
中等
动态规划
0-1背包
-
78、518. 零钱兑换 II
中等
动态规划
完全背包
18. 动态规划
-
79、746. 使用最小花费爬楼梯
简单
动态规划
-
79_2、加餐 铺瓷砖
-
80、剑指 Offer 47. 礼物的最大价值
中等
动态规划
-
81、338. 比特位计数
中等
动态规划
-
82、688. “马”在棋盘上的概率
中等
动态规划
19. 位运算
-
83、78. 子集
中等
位运算
-
84、260. 只出现一次的数字 III
中等
位运算
20、贪心算法
-
85、455. 分发饼干
简单
贪心
-
86、435. 无重叠区间
中等
贪心