跳至主要內容

面试进阶 300 题


链表

  • 单链表
题号标题题解标签难度
206反转链表open in new window[✓]递归 链表
141环形链表open in new window[✓]哈希表 链表 双指针
83删除排序链表中的重复元素open in new window[✓]链表
234回文链表open in new window[✓] 递归 链表 1+
203移除链表元素open in new window[✓]递归 链表
237删除链表中的节点open in new window[✓]链表
876链表的中间结点open in new window[✓]链表 双指针
92反转链表 IIopen in new window[✓]链表
143重排链表open in new window[✓] 递归 链表 1+
82删除排序链表中的重复元素 IIopen in new window[✓]链表 双指针
19删除链表的倒数第 N 个结点open in new window[✓]链表 双指针
148排序链表open in new window[✓]链表 双指针 分治 2+
86分隔链表open in new window[✓]链表 双指针
61旋转链表open in new window[✓]链表 双指针
142环形链表 IIopen in new window[✓]哈希表 链表 双指针
147对链表进行插入排序open in new window[✓]链表 排序
138随机链表的复制open in new window[✓]哈希表 链表
24两两交换链表中的节点open in new window[✓]递归 链表
328奇偶链表open in new window[✓]链表
707设计链表open in new window[✓]设计 链表
109有序链表转换二叉搜索树open in new window[✓] 二叉搜索树 链表 2+
430扁平化多级双向链表open in new window[✓]深度优先搜索 链表 双向链表
725分隔链表open in new window链表
25K 个一组翻转链表open in new window[✓]递归 链表
  • 双链表
题号标题题解标签难度
21合并两个有序链表open in new window[✓]递归 链表
160相交链表open in new window[✓]哈希表 链表 双指针
2两数相加open in new window[✓]递归 链表 数学
445两数相加 IIopen in new window[✓] 链表 数学
1669合并两个链表open in new window链表
23合并 K 个升序链表open in new window[✓]链表 分治 堆(优先队列) 1+

  • 遍历
题号标题题解标签难度
145二叉树的后序遍历open in new window[✓] 深度优先搜索 1+
94二叉树的中序遍历open in new window[✓] 深度优先搜索 1+
589N 叉树的前序遍历open in new window[✓] 深度优先搜索
144二叉树的前序遍历open in new window[✓] 深度优先搜索 1+
590N 叉树的后序遍历open in new window[✓] 深度优先搜索
102二叉树的层序遍历open in new window[✓] 广度优先搜索 二叉树
103二叉树的锯齿形层序遍历open in new window[✓] 广度优先搜索 二叉树
107二叉树的层序遍历 IIopen in new window[✓] 广度优先搜索 二叉树
  • 构造
题号标题题解标签难度
108将有序数组转换为二叉搜索树open in new window[✓] 二叉搜索树 数组 2+
105从前序与中序遍历序列构造二叉树open in new window[✓] 数组 哈希表 2+
106从中序与后序遍历序列构造二叉树open in new window[✓] 数组 哈希表 2+
114二叉树展开为链表open in new window[✓] 深度优先搜索 2+
889根据前序和后序遍历构造二叉树open in new window[✓] 数组 哈希表 2+
1008前序遍历构造二叉搜索树open in new window[✓] 二叉搜索树 3+
297二叉树的序列化与反序列化open in new window[✓] 深度优先搜索 广度优先搜索 3+
  • 路径 | 深度 | 翻转
题号标题题解标签难度
104二叉树的最大深度open in new window[✓] 深度优先搜索 广度优先搜索 1+
101对称二叉树open in new window[✓] 深度优先搜索 广度优先搜索 1+
226翻转二叉树open in new window[✓] 深度优先搜索 广度优先搜索 1+
543二叉树的直径open in new window[✓] 深度优先搜索 二叉树
257二叉树的所有路径open in new window[✓] 深度优先搜索 字符串 2+
110平衡二叉树open in new window[✓] 深度优先搜索 二叉树
617合并二叉树open in new window[✓] 深度优先搜索 广度优先搜索 1+
100相同的树open in new window[✓] 深度优先搜索 广度优先搜索 1+
112路径总和open in new window[✓] 深度优先搜索 广度优先搜索 1+
111二叉树的最小深度open in new window[✓] 深度优先搜索 广度优先搜索 1+
236二叉树的最近公共祖先open in new window[✓] 深度优先搜索 二叉树
222完全二叉树的节点个数open in new window[✓]位运算 二分查找 1+
113路径总和 IIopen in new window[✓] 深度优先搜索 回溯 1+
437路径总和 IIIopen in new window[✓] 深度优先搜索 二叉树
129求根节点到叶节点数字之和open in new window[✓] 深度优先搜索 二叉树
662二叉树最大宽度open in new window[✓] 深度优先搜索 广度优先搜索 1+
114二叉树展开为链表open in new window[✓] 深度优先搜索 2+
199二叉树的右视图open in new window[✓] 深度优先搜索 广度优先搜索 1+
116填充每个节点的下一个右侧节点指针open in new window[✓] 深度优先搜索 广度优先搜索 2+
515在每个树行中找最大值open in new window 深度优先搜索 广度优先搜索 1+
124二叉树中的最大路径和open in new window[✓] 深度优先搜索 动态规划 1+
297二叉树的序列化与反序列化open in new window[✓] 深度优先搜索 广度优先搜索 3+
  • 二叉搜索树
题号标题题解标签难度
108将有序数组转换为二叉搜索树open in new window[✓] 二叉搜索树 数组 2+
98验证二叉搜索树open in new window[✓] 深度优先搜索 二叉搜索树 1+
96不同的二叉搜索树open in new window[✓] 二叉搜索树 数学 2+
95不同的二叉搜索树 IIopen in new window[✓] 二叉搜索树 动态规划 2+
173二叉搜索树迭代器open in new window[✓] 设计 3+
230二叉搜索树中第 K 小的元素open in new window[✓] 深度优先搜索 二叉搜索树 1+
99恢复二叉搜索树open in new window[✓] 深度优先搜索 二叉搜索树 1+
  • 字典树
题号标题题解标签难度
720词典中最长的单词open in new window字典树 数组 哈希表 2+
208实现 Trie (前缀树)open in new window[✓]设计 字典树 哈希表 1+
692前K个高频单词open in new window字典树 哈希表 字符串 4+
421数组中两个数的最大异或值open in new window位运算 字典树 数组 1+
212单词搜索 IIopen in new window[✓]字典树 数组 字符串 2+
  • 线段树
题号标题题解标签难度
1353最多可以参加的会议数目open in new window贪心 数组 排序 1+
307区域和检索 - 数组可修改open in new window[✓]设计 树状数组 线段树 1+
315计算右侧小于当前元素的个数open in new window树状数组 线段树 数组 4+
493翻转对open in new window树状数组 线段树 数组 4+
218天际线问题open in new window树状数组 线段树 数组 4+
715Range 模块open in new window设计 线段树 有序集合
850矩形面积 IIopen in new window线段树 数组 有序集合 1+
1157子数组中占绝大多数的元素open in new window设计 树状数组 线段树 2+
699掉落的方块open in new window线段树 数组 有序集合
327区间和的个数open in new window树状数组 线段树 数组 4+

  • 基础
题号标题题解标签难度
20有效的括号open in new window[✓] 字符串
1047删除字符串中的所有相邻重复项open in new window[✓] 字符串
232用栈实现队列open in new window[✓] 设计 队列
155最小栈open in new window[✓] 设计
225用队列实现栈open in new window[✓] 设计 队列
1021删除最外层的括号open in new window[✓] 字符串
682棒球比赛open in new window[✓] 数组 模拟
844比较含退格的字符串open in new window[✓] 双指针 字符串 1+
1190反转每对括号间的子串open in new window[✓] 字符串
394字符串解码open in new window[✓] 递归 字符串
456132 模式open in new window 数组 二分查找 2+
227基本计算器 IIopen in new window[✓] 数学 字符串
150逆波兰表达式求值open in new window[✓] 数组 数学
503下一个更大元素 IIopen in new window[✓] 数组 单调栈
71简化路径open in new window[✓] 字符串
856括号的分数open in new window 字符串
907子数组的最小值之和open in new window 数组 动态规划 1+
385迷你语法分析器open in new window 深度优先搜索 字符串
1249移除无效的括号open in new window 字符串
636函数的独占时间open in new window 数组
341扁平化嵌套列表迭代器open in new window 深度优先搜索 3+
224基本计算器open in new window[✓] 递归 数学 1+
726原子的数量open in new window 哈希表 字符串 1+
  • 单调栈
题号标题题解标签难度
496下一个更大元素 Iopen in new window[✓] 数组 哈希表 1+
739每日温度open in new window[✓] 数组 单调栈
402移掉 K 位数字open in new window 贪心 字符串 1+
316去除重复字母open in new window[✓] 贪心 字符串 1+
1124表现良好的最长时间段open in new window 数组 哈希表 2+
42接雨水open in new window[✓] 数组 双指针 2+
84柱状图中最大的矩形open in new window[✓] 数组 单调栈
85最大矩形open in new window[✓] 数组 动态规划 2+
321拼接最大数open in new window 贪心 数组 2+

  • 基础
题号标题题解标签难度
1046最后一块石头的重量open in new window数组 堆(优先队列)
703数据流中的第 K 大元素open in new window[✓] 设计 二叉搜索树 3+
215数组中的第K个最大元素open in new window[✓]数组 分治 快速选择 2+
347前 K 个高频元素open in new window[✓]数组 哈希表 分治 5+
692前K个高频单词open in new window字典树 哈希表 字符串 4+
378有序矩阵中第 K 小的元素open in new window[✓]数组 二分查找 矩阵 2+
451根据字符出现频率排序open in new window[✓]哈希表 字符串 桶排序 3+
743网络延迟时间open in new window深度优先搜索 广度优先搜索 2+
787K 站中转内最便宜的航班open in new window深度优先搜索 广度优先搜索 3+
973最接近原点的 K 个点open in new window[✓]几何 数组 数学 4+
239滑动窗口最大值open in new window[✓]队列 数组 滑动窗口 2+
295数据流的中位数open in new window[✓]设计 双指针 数据流 2+
218天际线问题open in new window树状数组 线段树 数组 4+

二分查找

题号标题题解标签难度
69x 的平方根open in new window[✓]数学 二分查找
704二分查找open in new window[✓]数组 二分查找
35搜索插入位置open in new window[✓]数组 二分查找
349两个数组的交集open in new window数组 哈希表 双指针 2+
167两数之和 II - 输入有序数组open in new window[✓]数组 双指针 二分查找
278第一个错误的版本open in new window[✓]二分查找 交互
300最长递增子序列open in new window[✓]数组 二分查找 动态规划
74搜索二维矩阵open in new window[✓]数组 二分查找 矩阵
34在排序数组中查找元素的第一个和最后一个位置open in new window[✓]数组 二分查找
81搜索旋转排序数组 IIopen in new window[✓]数组 二分查找
33搜索旋转排序数组open in new window[✓]数组 二分查找
454四数相加 IIopen in new window数组 哈希表
240搜索二维矩阵 IIopen in new window[✓]数组 二分查找 分治 1+
718最长重复子数组open in new window数组 二分查找 动态规划 3+
50Pow(x, n)open in new window[✓]递归 数学
29两数相除open in new window[✓]位运算 数学
287寻找重复数open in new window[✓]位运算 数组 双指针 1+
209长度最小的子数组open in new window[✓]数组 二分查找 前缀和 1+
153寻找旋转排序数组中的最小值open in new window[✓]数组 二分查找
162寻找峰值open in new window[✓]数组 二分查找
378有序矩阵中第 K 小的元素open in new window[✓]数组 二分查找 矩阵 2+
230二叉搜索树中第 K 小的元素open in new window[✓] 深度优先搜索 二叉搜索树 1+
4寻找两个正序数组的中位数open in new window[✓]数组 二分查找 分治
887鸡蛋掉落open in new window数学 二分查找 动态规划
410分割数组的最大值open in new window贪心 数组 二分查找 2+
154寻找旋转排序数组中的最小值 IIopen in new window[✓]数组 二分查找

位运算

题号标题题解标签难度
136只出现一次的数字open in new window[✓]位运算 数组
191位1的个数open in new window[✓]位运算 分治
169多数元素open in new window[✓]数组 哈希表 分治 2+
190颠倒二进制位open in new window[✓]位运算 分治
2312 的幂open in new window位运算 递归 数学
389找不同open in new window位运算 哈希表 字符串 1+
461汉明距离open in new window位运算
405数字转换为十六进制数open in new window位运算 数学
268丢失的数字open in new window[✓]位运算 数组 哈希表 3+
78子集open in new window[✓]位运算 数组 回溯
338比特位计数open in new window位运算 动态规划
1318或运算的最小翻转次数open in new window位运算
89格雷编码open in new window位运算 数学 回溯
260只出现一次的数字 IIIopen in new window位运算 数组
371两整数之和open in new window位运算 数学
137只出现一次的数字 IIopen in new window[✓]位运算 数组
421数组中两个数的最大异或值open in new window位运算 字典树 数组 1+

双指针与滑动窗口

题号标题题解标签难度
387字符串中的第一个唯一字符open in new window队列 哈希表 字符串 1+
349两个数组的交集open in new window数组 哈希表 双指针 2+
409最长回文串open in new window贪心 哈希表 字符串
217存在重复元素open in new window[✓]数组 哈希表 排序
204计数质数open in new window数组 数学 枚举 1+
88合并两个有序数组open in new window[✓]数组 双指针 排序
283移动零open in new window[✓]数组 双指针
125验证回文串open in new window[✓]双指针 字符串
344反转字符串open in new window[✓]双指针 字符串
27移除元素open in new window[✓]数组 双指针
977有序数组的平方open in new window数组 双指针 排序
3无重复字符的最长子串open in new window[✓]哈希表 字符串 滑动窗口
781森林中的兔子open in new window贪心 数组 哈希表 1+
49字母异位词分组open in new window[✓]数组 哈希表 字符串 1+
18四数之和open in new window[✓]数组 双指针 排序
560和为 K 的子数组open in new window[✓]数组 哈希表 前缀和
454四数相加 IIopen in new window数组 哈希表
11盛最多水的容器open in new window[✓]贪心 数组 双指针
16最接近的三数之和open in new window[✓]数组 双指针 排序
18四数之和open in new window[✓]数组 双指针 排序
424替换后的最长重复字符open in new window哈希表 字符串 滑动窗口
713乘积小于 K 的子数组open in new window数组 二分查找 前缀和 1+
76最小覆盖子串open in new window[✓]哈希表 字符串 滑动窗口
992K 个不同整数的子数组open in new window数组 哈希表 计数 1+

矩阵

题号标题题解标签难度
867转置矩阵open in new window数组 矩阵 模拟
832翻转图像open in new window位运算 数组 双指针 2+
54螺旋矩阵open in new window[✓]数组 矩阵 模拟
59螺旋矩阵 IIopen in new window[✓]数组 矩阵 模拟
73矩阵置零open in new window[✓]数组 哈希表 矩阵
48旋转图像open in new window[✓]数组 数学 矩阵

动态规划

  • 一维
题号标题题解标签难度
70爬楼梯open in new window[✓]记忆化搜索 数学 动态规划
53最大子数组和open in new window[✓]数组 分治 动态规划
121买卖股票的最佳时机open in new window[✓]数组 动态规划
746使用最小花费爬楼梯open in new window数组 动态规划
337打家劫舍 IIIopen in new window 深度优先搜索 动态规划 1+
322零钱兑换open in new window[✓]广度优先搜索 数组 动态规划
300最长递增子序列open in new window[✓]数组 二分查找 动态规划
139单词拆分open in new window[✓]字典树 记忆化搜索 数组 3+
152乘积最大子数组open in new window[✓]数组 动态规划
338比特位计数open in new window位运算 动态规划
309买卖股票的最佳时机含冷冻期open in new window[✓]数组 动态规划
264丑数 IIopen in new window[✓]哈希表 数学 动态规划 1+
279完全平方数open in new window[✓]广度优先搜索 数学 动态规划
32最长有效括号open in new window[✓] 字符串 动态规划
354俄罗斯套娃信封问题open in new window[✓]数组 二分查找 动态规划 1+
123买卖股票的最佳时机 IIIopen in new window[✓]数组 动态规划
  • 二维
题号标题题解标签难度
5最长回文子串open in new window[✓]双指针 字符串 动态规划
1143最长公共子序列open in new window[✓]字符串 动态规划
131分割回文串open in new window[✓]字符串 动态规划 回溯
62不同路径open in new window[✓]数学 动态规划 组合数学
64最小路径和open in new window[✓]数组 动态规划 矩阵
221最大正方形open in new window[✓]数组 动态规划 矩阵
416分割等和子集open in new window[✓]数组 动态规划
718最长重复子数组open in new window数组 二分查找 动态规划 3+
494目标和open in new window[✓]数组 动态规划 回溯
10正则表达式匹配open in new window[✓]递归 字符串 动态规划
72编辑距离open in new window[✓]字符串 动态规划
887鸡蛋掉落open in new window数学 二分查找 动态规划
132分割回文串 IIopen in new window字符串 动态规划
44通配符匹配open in new window[✓]贪心 递归 字符串 1+
410分割数组的最大值open in new window贪心 数组 二分查找 2+

图论

  • DFS
题号标题题解标签难度
394字符串解码open in new window[✓] 递归 字符串
721账户合并open in new window深度优先搜索 广度优先搜索 并查集 4+
547省份数量open in new window深度优先搜索 广度优先搜索 并查集 1+
494目标和open in new window[✓]数组 动态规划 回溯
695岛屿的最大面积open in new window[✓]深度优先搜索 广度优先搜索 并查集 2+
130被围绕的区域open in new window[✓]深度优先搜索 广度优先搜索 并查集 2+
1631最小体力消耗路径open in new window深度优先搜索 广度优先搜索 并查集 4+
207课程表open in new window[✓]深度优先搜索 广度优先搜索 1+
417太平洋大西洋水流问题open in new window深度优先搜索 广度优先搜索 数组 1+
67924 点游戏open in new window数组 数学 回溯
  • BFS
题号标题题解标签难度
690员工的重要性open in new window 深度优先搜索 广度优先搜索 2+
279完全平方数open in new window[✓]广度优先搜索 数学 动态规划
130被围绕的区域open in new window[✓]深度优先搜索 广度优先搜索 并查集 2+
1319连通网络的操作次数open in new window深度优先搜索 广度优先搜索 并查集 1+
934最短的桥open in new window深度优先搜索 广度优先搜索 数组 1+
785判断二分图open in new window深度优先搜索 广度优先搜索 并查集 1+
994腐烂的橘子open in new window[✓]广度优先搜索 数组 矩阵
752打开转盘锁open in new window广度优先搜索 数组 哈希表 1+
1162地图分析open in new window广度优先搜索 数组 动态规划 1+
529扫雷游戏open in new window深度优先搜索 广度优先搜索 数组 1+
815公交路线open in new window广度优先搜索 数组 哈希表
127单词接龙open in new window[✓]广度优先搜索 哈希表 字符串
1293网格中的最短路径open in new window广度优先搜索 数组 矩阵
773滑动谜题open in new window广度优先搜索 数组 矩阵
827最大人工岛open in new window深度优先搜索 广度优先搜索 并查集 2+
787K 站中转内最便宜的航班open in new window深度优先搜索 广度优先搜索 3+
  • 拓扑排序
题号标题题解标签难度
207课程表open in new window[✓]深度优先搜索 广度优先搜索 1+
210课程表 IIopen in new window[✓]深度优先搜索 广度优先搜索 1+
329矩阵中的最长递增路径open in new window深度优先搜索 广度优先搜索 5+
1203项目管理open in new window深度优先搜索 广度优先搜索 1+

并查集

题号标题题解标签难度
200岛屿数量open in new window[✓]深度优先搜索 广度优先搜索 并查集 2+
721账户合并open in new window深度优先搜索 广度优先搜索 并查集 4+
547省份数量open in new window深度优先搜索 广度优先搜索 并查集 1+
130被围绕的区域open in new window[✓]深度优先搜索 广度优先搜索 并查集 2+
1631最小体力消耗路径open in new window深度优先搜索 广度优先搜索 并查集 4+
399除法求值open in new window[✓]深度优先搜索 广度优先搜索 并查集 4+
1319连通网络的操作次数open in new window深度优先搜索 广度优先搜索 并查集 1+
684冗余连接open in new window深度优先搜索 广度优先搜索 并查集 1+
128最长连续序列open in new window[✓]并查集 数组 哈希表
765情侣牵手open in new window贪心 深度优先搜索 广度优先搜索 2+

设计

题号标题题解标签难度
1603设计停车系统open in new window设计 计数 模拟
705设计哈希集合open in new window[✓]设计 数组 哈希表 2+
706设计哈希映射open in new window[✓]设计 数组 哈希表 2+
703数据流中的第 K 大元素open in new window[✓] 设计 二叉搜索树 3+
146LRU 缓存open in new window[✓]设计 哈希表 链表 1+
341扁平化嵌套列表迭代器open in new window 深度优先搜索 3+
208实现 Trie (前缀树)open in new window[✓]设计 字典树 哈希表 1+
173二叉搜索树迭代器open in new window[✓] 设计 3+
622设计循环队列open in new window[✓]设计 队列 数组 1+
380O(1) 时间插入、删除和获取随机元素open in new window[✓]设计 数组 哈希表 2+
295数据流的中位数open in new window[✓]设计 双指针 数据流 2+
460LFU 缓存open in new window设计 哈希表 链表 1+

贪心

题号标题题解标签难度
264丑数 IIopen in new window[✓]哈希表 数学 动态规划 1+
946验证栈序列open in new window[✓] 数组 模拟
767重构字符串open in new window贪心 哈希表 字符串 3+
373查找和最小的 K 对数字open in new window[✓]数组 堆(优先队列)
313超级丑数open in new window数组 数学 动态规划

回溯

题号标题题解标签难度
46全排列open in new window[✓]数组 回溯
22括号生成open in new window[✓]字符串 动态规划 回溯
93复原 IP 地址open in new window[✓]字符串 回溯
78子集open in new window[✓]位运算 数组 回溯
17电话号码的字母组合open in new window[✓]哈希表 字符串 回溯
79单词搜索open in new window[✓]数组 字符串 回溯 1+
90子集 IIopen in new window[✓]位运算 数组 回溯
39组合总和open in new window[✓]数组 回溯
77组合open in new window[✓]回溯
40组合总和 IIopen in new window[✓]数组 回溯
47全排列 IIopen in new window[✓]数组 回溯
842将数组拆分成斐波那契序列open in new window字符串 回溯
216组合总和 IIIopen in new window[✓]数组 回溯
89格雷编码open in new window位运算 数学 回溯
51N 皇后open in new window[✓]数组 回溯
37解数独open in new window[✓]数组 哈希表 回溯 1+
126单词接龙 IIopen in new window广度优先搜索 哈希表 字符串 1+
1659最大化网格幸福感open in new window位运算 记忆化搜索 动态规划 1+

克隆

题号标题题解标签难度
133克隆图open in new window[✓]深度优先搜索 广度优先搜索 1+
138随机链表的复制open in new window[✓]哈希表 链表

数学

题号标题题解标签难度
204计数质数open in new window数组 数学 枚举 1+
628三个数的最大乘积open in new window数组 数学 排序
976三角形的最大周长open in new window贪心 数组 数学 1+
202快乐数open in new window[✓]哈希表 数学 双指针
1232缀点成线open in new window几何 数组 数学
29两数相除open in new window[✓]位运算 数学
343整数拆分open in new window[✓]数学 动态规划
166分数到小数open in new window哈希表 数学 字符串
149直线上最多的点数open in new window[✓]几何 数组 哈希表 1+

极大极小化

题号标题题解标签难度
292Nim 游戏open in new window脑筋急转弯 数学 博弈
375猜数字大小 IIopen in new window[✓]数学 动态规划 博弈
486预测赢家open in new window递归 数组 数学 2+
464我能赢吗open in new window位运算 记忆化搜索 数学 3+
877石子游戏open in new window数组 数学 动态规划 1+

几何

题号标题题解标签难度
1232缀点成线open in new window几何 数组 数学
1266访问所有点的最小时间open in new window几何 数组 数学
892三维形体的表面积open in new window几何 数组 数学 1+
1401圆和矩形是否有重叠open in new window几何 数学
963最小面积矩形 IIopen in new window几何 数组 数学
587安装栅栏open in new window几何 数组 数学
1515服务中心的最佳位置open in new window几何 数组 数学 1+

相关信息

数据来源: Leetcode-retagopen in new window