跳至主要內容

面试高频 200 题


数组

题号标题题解标签难度频次
189轮转数组open in new window[✓]数组 数学 双指针26
498对角线遍历open in new window[✓]数组 矩阵 模拟43
48旋转图像open in new window[✓]数组 数学 矩阵70
54螺旋矩阵open in new window[✓]数组 矩阵 模拟186
59螺旋矩阵 IIopen in new window[✓]数组 矩阵 模拟36

链表

题号标题题解标签难度频次
83删除排序链表中的重复元素open in new window[✓]链表54
82删除排序链表中的重复元素 IIopen in new window[✓]链表 双指针117
206反转链表open in new window[✓]递归 链表575
92反转链表 IIopen in new window[✓]链表184
25K 个一组翻转链表open in new window[✓]递归 链表332
328奇偶链表open in new window[✓]链表28
234回文链表open in new window[✓] 递归 链表 1+65
138随机链表的复制open in new window[✓]哈希表 链表47
61旋转链表open in new window[✓]链表 双指针38

  • 栈基础
题号标题题解标签难度频次
1047删除字符串中的所有相邻重复项open in new window[✓] 字符串21
155最小栈open in new window[✓] 设计84
20有效的括号open in new window[✓] 字符串207
224基本计算器open in new window[✓] 递归 数学 1+43
227基本计算器 IIopen in new window[✓] 数学 字符串54
232用栈实现队列open in new window[✓] 设计 队列120
剑指 Offer 9用两个栈实现队列open in new window[✓] 设计 队列44
394字符串解码open in new window[✓] 递归 字符串66
71简化路径open in new window[✓] 字符串21
  • 单调栈
题号标题题解标签难度频次
739每日温度open in new window[✓] 数组 单调栈46
503下一个更大元素 IIopen in new window[✓] 数组 单调栈16
42接雨水open in new window[✓] 数组 双指针 2+147
85最大矩形open in new window[✓] 数组 动态规划 2+21

队列

  • 队列基础
题号标题题解标签难度频次
225用队列实现栈open in new window[✓] 设计 队列29
  • 优先队列
题号标题题解标签难度频次
295数据流的中位数open in new window[✓]设计 双指针 数据流 2+26
23合并 K 个升序链表open in new window[✓]链表 分治 堆(优先队列) 1+173

哈希表

题号标题题解标签难度频次
15三数之和open in new window[✓]数组 双指针 排序310
41缺失的第一个正数open in new window[✓]数组 哈希表97
128最长连续序列open in new window[✓]并查集 数组 哈希表56
242有效的字母异位词open in new window[✓]哈希表 字符串 排序17
442数组中重复的数据open in new window[✓]数组 哈希表19
剑指 Offer 61扑克牌中的顺子open in new window[✓]数组 排序21
剑指 Offer 3数组中重复的数字open in new window[✓]数组 哈希表 排序16

字符串

  • 字符串基础
题号标题题解标签难度频次
125验证回文串open in new window[✓]双指针 字符串29
5最长回文子串open in new window[✓]双指针 字符串 动态规划222
344反转字符串open in new window[✓]双指针 字符串17
557反转字符串中的单词 IIIopen in new window[✓]双指针 字符串17
151反转字符串中的单词open in new window[✓]双指针 字符串81
43字符串相乘open in new window[✓]数学 字符串 模拟82
  • 单模式串匹配
题号标题题解标签难度频次
459重复的子字符串open in new window[✓]字符串 字符串匹配18
  • 字典树
题号标题题解标签难度频次
208实现 Trie (前缀树)open in new window[✓]设计 字典树 哈希表 1+27
440字典序的第K小数字open in new window[✓]字典树33

  • 二叉树的遍历
题号标题题解标签难度频次
144二叉树的前序遍历open in new window[✓] 深度优先搜索 1+78
145二叉树的后序遍历open in new window[✓] 深度优先搜索 1+36
102二叉树的层序遍历open in new window[✓] 广度优先搜索 二叉树220
103二叉树的锯齿形层序遍历open in new window[✓] 广度优先搜索 二叉树200
101对称二叉树open in new window[✓] 深度优先搜索 广度优先搜索 1+76
112路径总和open in new window[✓] 深度优先搜索 广度优先搜索 1+65
113路径总和 IIopen in new window[✓] 深度优先搜索 回溯 1+69
236二叉树的最近公共祖先open in new window[✓] 深度优先搜索 二叉树199
199二叉树的右视图open in new window[✓] 深度优先搜索 广度优先搜索 1+118
297二叉树的序列化与反序列化open in new window[✓] 深度优先搜索 广度优先搜索 3+49
114二叉树展开为链表open in new window[✓] 深度优先搜索 2+28
  • 二叉树的还原
题号标题题解标签难度频次
105从前序与中序遍历序列构造二叉树open in new window[✓] 数组 哈希表 2+84
106从中序与后序遍历序列构造二叉树open in new window[✓] 数组 哈希表 2+25
  • 二叉搜索树
题号标题题解标签难度频次
98验证二叉搜索树open in new window[✓] 深度优先搜索 二叉搜索树 1+71
450删除二叉搜索树中的节点open in new window[✓] 二叉搜索树 二叉树33
剑指 Offer 54二叉搜索树的第k大节点open in new window[✓] 深度优先搜索 二叉搜索树 1+37
230二叉搜索树中第 K 小的元素open in new window[✓] 深度优先搜索 二叉搜索树 1+31
426将二叉搜索树转化为排序的双向链表 🔒open in new window[✓] 深度优先搜索 4+16
110平衡二叉树open in new window[✓] 深度优先搜索 二叉树77

  • 图的深度优先搜索
题号标题题解标签难度频次
200岛屿数量open in new window[✓]深度优先搜索 广度优先搜索 并查集 2+211
695岛屿的最大面积open in new window[✓]深度优先搜索 广度优先搜索 并查集 2+56
94二叉树的中序遍历open in new window[✓] 深度优先搜索 1+124
129求根节点到叶节点数字之和open in new window[✓] 深度优先搜索 二叉树76
124二叉树中的最大路径和open in new window[✓] 深度优先搜索 动态规划 1+129
543二叉树的直径open in new window[✓] 深度优先搜索 二叉树74
662二叉树最大宽度open in new window[✓] 深度优先搜索 广度优先搜索 1+57
958二叉树的完全性检验open in new window[✓] 广度优先搜索 二叉树42
572另一棵树的子树open in new window[✓] 深度优先搜索 二叉树 2+28
100相同的树open in new window[✓] 深度优先搜索 广度优先搜索 1+16
111二叉树的最小深度open in new window[✓] 深度优先搜索 广度优先搜索 1+20
  • 图的广度优先搜索
题号标题题解标签难度频次
322零钱兑换open in new window[✓]广度优先搜索 数组 动态规划84
207课程表open in new window[✓]深度优先搜索 广度优先搜索 1+43
剑指 Offer 32-III从上到下打印二叉树 IIIopen in new window[✓] 广度优先搜索 二叉树16
  • 图的拓扑排序
题号标题题解标签难度频次
210课程表 IIopen in new window[✓]深度优先搜索 广度优先搜索 1+19

枚举算法

题号标题题解标签难度频次
1两数之和open in new window[✓]数组 哈希表232
78子集open in new window[✓]位运算 数组 回溯85

递归算法

题号标题题解标签难度频次
24两两交换链表中的节点open in new window[✓]递归 链表50
104二叉树的最大深度open in new window[✓] 深度优先搜索 广度优先搜索 1+77
226翻转二叉树open in new window[✓] 深度优先搜索 广度优先搜索 1+59

分治算法

题号标题题解标签难度频次
169多数元素open in new window[✓]数组 哈希表 分治 2+61
14最长公共前缀open in new window[✓]字典树 字符串58
剑指 Offer 33二叉搜索树的后序遍历序列open in new window[✓] 二叉搜索树 4+16

回溯算法

题号标题题解标签难度频次
46全排列open in new window[✓]数组 回溯202
47全排列 IIopen in new window[✓]数组 回溯40
37解数独open in new window[✓]数组 哈希表 回溯 1+18
22括号生成open in new window[✓]字符串 动态规划 回溯105
39组合总和open in new window[✓]数组 回溯68
40组合总和 IIopen in new window[✓]数组 回溯35
93复原 IP 地址open in new window[✓]字符串 回溯114
79单词搜索open in new window[✓]数组 字符串 回溯 1+38
67924 点游戏open in new window数组 数学 回溯21

贪心算法

题号标题题解标签难度频次
122买卖股票的最佳时机 IIopen in new window[✓]贪心 数组 动态规划56
55跳跃游戏open in new window[✓]贪心 数组 动态规划38
402移掉 K 位数字open in new window 贪心 字符串 1+44
135分发糖果open in new window[✓]贪心 数组29
134加油站open in new window[✓]贪心 数组20
670最大交换open in new window[✓]贪心 数学17

动态规划

题号标题题解标签难度频次
70爬楼梯open in new window[✓]记忆化搜索 数学 动态规划109
509斐波那契数open in new window[✓]递归 记忆化搜索 数学 1+19
121买卖股票的最佳时机open in new window[✓]数组 动态规划211
518零钱兑换 IIopen in new window[✓]数组 动态规划35
300最长递增子序列open in new window[✓]数组 二分查找 动态规划163
1143最长公共子序列open in new window[✓]字符串 动态规划120
718最长重复子数组open in new window数组 二分查找 动态规划 3+60
64最小路径和open in new window[✓]数组 动态规划 矩阵68
72编辑距离open in new window[✓]字符串 动态规划127
32最长有效括号open in new window[✓] 字符串 动态规划81
221最大正方形open in new window[✓]数组 动态规划 矩阵68
62不同路径open in new window[✓]数学 动态规划 组合数学55
63不同路径 IIopen in new window[✓]数组 动态规划 矩阵18
152乘积最大子数组open in new window[✓]数组 动态规划55
198打家劫舍open in new window[✓]数组 动态规划51
213打家劫舍 IIopen in new window数组 动态规划25
91解码方法open in new window字符串 动态规划28
10正则表达式匹配open in new window[✓]递归 字符串 动态规划26
678有效的括号字符串open in new window[✓] 贪心 字符串 1+21
45跳跃游戏 IIopen in new window[✓]贪心 数组 动态规划31
673最长递增子序列的个数open in new window树状数组 线段树 数组 1+19
139单词拆分open in new window[✓]字典树 记忆化搜索 数组 3+52
44通配符匹配open in new window[✓]贪心 递归 字符串 1+19
120三角形最小路径和open in new window[✓]数组 动态规划23
96不同的二叉搜索树open in new window[✓] 二叉搜索树 数学 2+24
887鸡蛋掉落open in new window数学 二分查找 动态规划21
97交错字符串open in new window[✓]字符串 动态规划17
516最长回文子序列open in new window[✓]字符串 动态规划17
329矩阵中的最长递增路径open in new window深度优先搜索 广度优先搜索 5+28

位运算

题号标题题解标签难度频次
191位1的个数open in new window[✓]位运算 分治17
268丢失的数字open in new window[✓]位运算 数组 哈希表 3+16

排序算法

  • 冒泡排序
题号标题题解标签难度频次
283移动零open in new window[✓]数组 双指针49
  • 插入排序
题号标题题解标签难度频次
75颜色分类open in new window[✓]数组 双指针 排序33
  • 归并排序
题号标题题解标签难度频次
剑指 Offer 51数组中的逆序对open in new window[✓]树状数组 线段树 数组 4+37
  • 堆排序
题号标题题解标签难度频次
912排序数组open in new window数组 分治 桶排序 5+16
215数组中的第K个最大元素open in new window[✓]数组 分治 快速选择 2+420
剑指 Offer 40最小的k个数open in new window[✓]数组 分治 快速选择 2+36
  • 基数排序
题号标题题解标签难度频次
164最大间距open in new window数组 桶排序 基数排序 1+16
  • 其他排序
题号标题题解标签难度频次
136只出现一次的数字open in new window[✓]位运算 数组45
56合并区间open in new window[✓]数组 排序125
179最大数open in new window贪心 数组 字符串 1+51
384打乱数组open in new window数组 数学 随机化28
剑指 Offer 45把数组排成最小的数open in new window[✓]贪心 字符串 排序18
  • 链表排序
题号标题题解标签难度频次
148排序链表open in new window[✓]链表 双指针 分治 2+111
21合并两个有序链表open in new window[✓]递归 链表242

二分查找

  • 二分下标
题号标题题解标签难度频次
704二分查找open in new window[✓]数组 二分查找120
34在排序数组中查找元素的第一个和最后一个位置open in new window[✓]数组 二分查找67
153寻找旋转排序数组中的最小值open in new window[✓]数组 二分查找49
154寻找旋转排序数组中的最小值 IIopen in new window[✓]数组 二分查找16
33搜索旋转排序数组open in new window[✓]数组 二分查找220
162寻找峰值open in new window[✓]数组 二分查找60
4寻找两个正序数组的中位数open in new window[✓]数组 二分查找 分治117
74搜索二维矩阵open in new window[✓]数组 二分查找 矩阵35
240搜索二维矩阵 IIopen in new window[✓]数组 二分查找 分治 1+61
  • 二分答案
题号标题题解标签难度频次
69x 的平方根open in new window[✓]数学 二分查找109
287寻找重复数open in new window[✓]位运算 数组 双指针 1+25
50Pow(x, n)open in new window[✓]递归 数学37
400第 N 位数字open in new window[✓]数学 二分查找23
  • 复杂的二分查找问题
题号标题题解标签难度频次
209长度最小的子数组open in new window[✓]数组 二分查找 前缀和 1+49
349两个数组的交集open in new window数组 哈希表 双指针 2+22

双指针

  • 对撞指针
题号标题题解标签难度频次
611有效三角形的个数open in new window[✓]贪心 数组 双指针 2+20
16最接近的三数之和open in new window[✓]数组 双指针 排序29
11盛最多水的容器open in new window[✓]贪心 数组 双指针43
剑指 Offer 21调整数组顺序使奇数位于偶数前面open in new window[✓]数组 双指针 排序30
443压缩字符串open in new window[✓]双指针 字符串18
  • 快慢指针
题号标题题解标签难度频次
26删除有序数组中的重复项open in new window[✓]数组 双指针35
88合并两个有序数组open in new window[✓]数组 双指针 排序204
  • 分离双指针
题号标题题解标签难度频次
415字符串相加open in new window[✓]数学 字符串 模拟166
  • 链表双指针
题号标题题解标签难度频次
141环形链表open in new window[✓]哈希表 链表 双指针210
142环形链表 IIopen in new window[✓]哈希表 链表 双指针148
160相交链表open in new window[✓]哈希表 链表 双指针176
19删除链表的倒数第 N 个结点open in new window[✓]链表 双指针129
剑指 Offer 22链表中倒数第k个节点open in new window[✓]链表 双指针95
143重排链表open in new window[✓] 递归 链表 1+148
2两数相加open in new window[✓]递归 链表 数学106
445两数相加 IIopen in new window[✓] 链表 数学28

滑动窗口

  • 固定长度窗口
题号标题题解标签难度频次
239滑动窗口最大值open in new window[✓]队列 数组 滑动窗口 2+98
  • 不定长度窗口
题号标题题解标签难度频次
3无重复字符的最长子串open in new window[✓]哈希表 字符串 滑动窗口642
76最小覆盖子串open in new window[✓]哈希表 字符串 滑动窗口87
862和至少为 K 的最短子数组open in new window队列 数组 二分查找 4+16
1004最大连续1的个数 IIIopen in new window[✓]数组 二分查找 前缀和 1+22

补充

  • 设计数据结构
题号标题题解标签难度频次
146LRU 缓存open in new window[✓]设计 哈希表 链表 1+525
460LFU 缓存open in new window设计 哈希表 链表 1+45
  • 数学
题号标题题解标签难度频次
7整数反转open in new window[✓]数学37
9回文数open in new window[✓]数学27
剑指 Offer 62圆圈中最后剩下的数字open in new window[✓]递归 数学30
168Excel 表列名称open in new window数学 字符串20
  • 模拟
题号标题题解标签难度频次
8字符串转换整数 (atoi)open in new window[✓]字符串106
165比较版本号open in new window双指针 字符串96
468验证IP地址open in new window字符串48
86分隔链表open in new window[✓]链表 双指针18
  • 前缀和
题号标题题解标签难度频次
560和为 K 的子数组open in new window[✓]数组 哈希表 前缀和49
  • 思维锻炼
题号标题题解标签难度频次
31下一个排列open in new window[✓]数组 双指针111
556下一个更大元素 IIIopen in new window数学 双指针 字符串19
470用 Rand7() 实现 Rand10()open in new window数学 拒绝采样 概率与统计 1+68