跳至主要內容

面试必刷 150 题


数组 / 字符串

题号标题题解标签难度
88合并两个有序数组open in new window[✓]数组 双指针 排序
27移除元素open in new window[✓]数组 双指针
26删除有序数组中的重复项open in new window[✓]数组 双指针
80删除有序数组中的重复项 IIopen in new window[✓]数组 双指针
169多数元素open in new window[✓]数组 哈希表 分治 2+
189轮转数组open in new window[✓]数组 数学 双指针
121买卖股票的最佳时机open in new window[✓]数组 动态规划
122买卖股票的最佳时机 IIopen in new window[✓]贪心 数组 动态规划
55跳跃游戏open in new window[✓]贪心 数组 动态规划
45跳跃游戏 IIopen in new window[✓]贪心 数组 动态规划
274H 指数open in new window[✓]数组 计数排序 排序
380O(1) 时间插入、删除和获取随机元素open in new window[✓]设计 数组 哈希表 2+
238除自身以外数组的乘积open in new window[✓]数组 前缀和
134加油站open in new window[✓]贪心 数组
135分发糖果open in new window[✓]贪心 数组
42接雨水open in new window[✓] 数组 双指针 2+
13罗马数字转整数open in new window[✓]哈希表 数学 字符串
12整数转罗马数字open in new window[✓]哈希表 数学 字符串
58最后一个单词的长度open in new window[✓]字符串
14最长公共前缀open in new window[✓]字典树 字符串
151反转字符串中的单词open in new window[✓]双指针 字符串
6Z 字形变换open in new window[✓]字符串
28找出字符串中第一个匹配项的下标open in new window[✓]双指针 字符串 字符串匹配
68文本左右对齐open in new window[✓]数组 字符串 模拟

双指针

题号标题题解标签难度
125验证回文串open in new window[✓]双指针 字符串
392判断子序列open in new window[✓]双指针 字符串 动态规划
167两数之和 II - 输入有序数组open in new window[✓]数组 双指针 二分查找
11盛最多水的容器open in new window[✓]贪心 数组 双指针
15三数之和open in new window[✓]数组 双指针 排序

滑动窗口

题号标题题解标签难度
209长度最小的子数组open in new window[✓]数组 二分查找 前缀和 1+
3无重复字符的最长子串open in new window[✓]哈希表 字符串 滑动窗口
30串联所有单词的子串open in new window[✓]哈希表 字符串 滑动窗口
76最小覆盖子串open in new window[✓]哈希表 字符串 滑动窗口

矩阵

题号标题题解标签难度
36有效的数独open in new window[✓]数组 哈希表 矩阵
54螺旋矩阵open in new window[✓]数组 矩阵 模拟
48旋转图像open in new window[✓]数组 数学 矩阵
73矩阵置零open in new window[✓]数组 哈希表 矩阵
289生命游戏open in new window[✓]数组 矩阵 模拟

哈希表

题号标题题解标签难度
383赎金信open in new window[✓]哈希表 字符串 计数
205同构字符串open in new window[✓]哈希表 字符串
290单词规律open in new window[✓]哈希表 字符串
242有效的字母异位词open in new window[✓]哈希表 字符串 排序
49字母异位词分组open in new window[✓]数组 哈希表 字符串 1+
1两数之和open in new window[✓]数组 哈希表
202快乐数open in new window[✓]哈希表 数学 双指针
219存在重复元素 IIopen in new window[✓]数组 哈希表 滑动窗口
128最长连续序列open in new window[✓]并查集 数组 哈希表

间隔

题号标题题解标签难度
228汇总区间open in new window[✓]数组
56合并区间open in new window[✓]数组 排序
57插入区间open in new window[✓]数组
452用最少数量的箭引爆气球open in new window[✓]贪心 数组 排序

题号标题题解标签难度
20有效的括号open in new window[✓] 字符串
71简化路径open in new window[✓] 字符串
155最小栈open in new window[✓] 设计
150逆波兰表达式求值open in new window[✓] 数组 数学
224基本计算器open in new window[✓] 递归 数学 1+

链表

题号标题题解标签难度
141环形链表open in new window[✓]哈希表 链表 双指针
2两数相加open in new window[✓]递归 链表 数学
21合并两个有序链表open in new window[✓]递归 链表
138随机链表的复制open in new window[✓]哈希表 链表
92反转链表 IIopen in new window[✓]链表
25K 个一组翻转链表open in new window[✓]递归 链表
19删除链表的倒数第 N 个结点open in new window[✓]链表 双指针
82删除排序链表中的重复元素 IIopen in new window[✓]链表 双指针
61旋转链表open in new window[✓]链表 双指针
86分隔链表open in new window[✓]链表 双指针
146LRU 缓存open in new window[✓]设计 哈希表 链表 1+

  • 二叉树
题号标题题解标签难度
104二叉树的最大深度open in new window[✓] 深度优先搜索 广度优先搜索 1+
100相同的树open in new window[✓] 深度优先搜索 广度优先搜索 1+
226翻转二叉树open in new window[✓] 深度优先搜索 广度优先搜索 1+
101对称二叉树open in new window[✓] 深度优先搜索 广度优先搜索 1+
105从前序与中序遍历序列构造二叉树open in new window[✓] 数组 哈希表 2+
106从中序与后序遍历序列构造二叉树open in new window[✓] 数组 哈希表 2+
117填充每个节点的下一个右侧节点指针 IIopen in new window[✓] 深度优先搜索 广度优先搜索 2+
114二叉树展开为链表open in new window[✓] 深度优先搜索 2+
112路径总和open in new window[✓] 深度优先搜索 广度优先搜索 1+
129求根节点到叶节点数字之和open in new window[✓] 深度优先搜索 二叉树
124二叉树中的最大路径和open in new window[✓] 深度优先搜索 动态规划 1+
173二叉搜索树迭代器open in new window[✓] 设计 3+
222完全二叉树的节点个数open in new window[✓]位运算 二分查找 1+
236二叉树的最近公共祖先open in new window[✓] 深度优先搜索 二叉树
  • 二叉树的广度优先搜索
题号标题题解标签难度
199二叉树的右视图open in new window[✓] 深度优先搜索 广度优先搜索 1+
637二叉树的层平均值open in new window[✓] 深度优先搜索 广度优先搜索 1+
102二叉树的层序遍历open in new window[✓] 广度优先搜索 二叉树
103二叉树的锯齿形层序遍历open in new window[✓] 广度优先搜索 二叉树
  • 二叉搜索树
题号标题题解标签难度
530二叉搜索树的最小绝对差open in new window[✓] 深度优先搜索 广度优先搜索 2+
230二叉搜索树中第 K 小的元素open in new window[✓] 深度优先搜索 二叉搜索树 1+
98验证二叉搜索树open in new window[✓] 深度优先搜索 二叉搜索树 1+
  • 前缀树
题号标题题解标签难度
208实现 Trie (前缀树)open in new window[✓]设计 字典树 哈希表 1+
211添加与搜索单词 - 数据结构设计open in new window[✓]深度优先搜索 设计 字典树 1+
212单词搜索 IIopen in new window[✓]字典树 数组 字符串 2+

  • 图的深度优先搜索
题号标题题解标签难度
200岛屿数量open in new window[✓]深度优先搜索 广度优先搜索 并查集 2+
130被围绕的区域open in new window[✓]深度优先搜索 广度优先搜索 并查集 2+
133克隆图open in new window[✓]深度优先搜索 广度优先搜索 1+
399除法求值open in new window[✓]深度优先搜索 广度优先搜索 并查集 4+
207课程表open in new window[✓]深度优先搜索 广度优先搜索 1+
210课程表 IIopen in new window[✓]深度优先搜索 广度优先搜索 1+
  • 图的广度优先搜索
题号标题题解标签难度
945使数组唯一的最小增量open in new window[✓]贪心 数组 计数 1+
433最小基因变化open in new window[✓]广度优先搜索 哈希表 字符串
127单词接龙open in new window[✓]广度优先搜索 哈希表 字符串

回溯

题号标题题解标签难度
17电话号码的字母组合open in new window[✓]哈希表 字符串 回溯
77组合open in new window[✓]回溯
46全排列open in new window[✓]数组 回溯
39组合总和open in new window[✓]数组 回溯
52N 皇后 IIopen in new window[✓]回溯
22括号生成open in new window[✓]字符串 动态规划 回溯
79单词搜索open in new window[✓]数组 字符串 回溯 1+

分治

题号标题题解标签难度
108将有序数组转换为二叉搜索树open in new window[✓] 二叉搜索树 数组 2+
148排序链表open in new window[✓]链表 双指针 分治 2+
772基本计算器 III 🔒open in new window[✓] 递归 数学 1+
23合并 K 个升序链表open in new window[✓]链表 分治 堆(优先队列) 1+

二分查找

题号标题题解标签难度
35搜索插入位置open in new window[✓]数组 二分查找
74搜索二维矩阵open in new window[✓]数组 二分查找 矩阵
162寻找峰值open in new window[✓]数组 二分查找
33搜索旋转排序数组open in new window[✓]数组 二分查找
34在排序数组中查找元素的第一个和最后一个位置open in new window[✓]数组 二分查找
153寻找旋转排序数组中的最小值open in new window[✓]数组 二分查找
4寻找两个正序数组的中位数open in new window[✓]数组 二分查找 分治

题号标题题解标签难度
215数组中的第K个最大元素open in new window[✓]数组 分治 快速选择 2+
502IPOopen in new window[✓]贪心 数组 排序 1+
373查找和最小的 K 对数字open in new window[✓]数组 堆(优先队列)
295数据流的中位数open in new window[✓]设计 双指针 数据流 2+

位运算

题号标题题解标签难度
67二进制求和open in new window[✓]位运算 数学 字符串 1+
190颠倒二进制位open in new window[✓]位运算 分治
191位1的个数open in new window[✓]位运算 分治
136只出现一次的数字open in new window[✓]位运算 数组
137只出现一次的数字 IIopen in new window[✓]位运算 数组
201数字范围按位与open in new window[✓]位运算

数学

题号标题题解标签难度
9回文数open in new window[✓]数学
66加一open in new window[✓]数组 数学
172阶乘后的零open in new window[✓]数学
69x 的平方根open in new window[✓]数学 二分查找
50Pow(x, n)open in new window[✓]递归 数学
149直线上最多的点数open in new window[✓]几何 数组 哈希表 1+

动态规划

  • Kadane 算法
题号标题题解标签难度
53最大子数组和open in new window[✓]数组 分治 动态规划
954二倍数对数组open in new window[✓]贪心 数组 哈希表 1+
  • 一维
题号标题题解标签难度
70爬楼梯open in new window[✓]记忆化搜索 数学 动态规划
198打家劫舍open in new window[✓]数组 动态规划
139单词拆分open in new window[✓]字典树 记忆化搜索 数组 3+
322零钱兑换open in new window[✓]广度优先搜索 数组 动态规划
300最长递增子序列open in new window[✓]数组 二分查找 动态规划
  • 多维
题号标题题解标签难度
120三角形最小路径和open in new window[✓]数组 动态规划
64最小路径和open in new window[✓]数组 动态规划 矩阵
63不同路径 IIopen in new window[✓]数组 动态规划 矩阵
5最长回文子串open in new window[✓]双指针 字符串 动态规划
97交错字符串open in new window[✓]字符串 动态规划
72编辑距离open in new window[✓]字符串 动态规划
123买卖股票的最佳时机 IIIopen in new window[✓]数组 动态规划
188买卖股票的最佳时机 IVopen in new window[✓]数组 动态规划
221最大正方形open in new window[✓]数组 动态规划 矩阵