LeetCode 高频面试题汇总。
| 序号 | 题号 | 题目 | 难度 | 标签 |
|---|---|---|---|---|
| 1 | LC0003 | 无重复字符的最长子串 | 中等 | 滑动窗口 |
| 2 | LC0146 | LRU 缓存机制 | 中等 | 双向链表 |
| 3 | LC0206 | 反转链表 | 简单 | 链表 |
| 4 | LC0215 | 数组中的第 K 个最大元素 | 中等 | 快速选择 |
| 5 | LC0025 | K 个一组翻转链表 | 困难 | 链表 |
| 6 | LC0015 | 三数之和 | 中等 | 双指针 |
| 7 | LC0053 | 最大子数组和 | 中等 | 前缀和 |
| 8 | LC0912 | 手撕快速排序 | 中等 | 快速排序 |
| 9 | LC0021 | 合并两个有序链表 | 简单 | 链表 |
| 10 | LC0005 | 最长回文子串 | 中等 | 字符串 |
| 11 | LC0102 | 二叉树的层序遍历 | 中等 | BFS |
| 12 | LC0001 | 两数之和 | 简单 | 哈希表 |
| 13 | LC0033 | 搜索旋转排序数组 | 中等 | 二分查找 |
| 14 | LC0200 | 岛屿数量 | 中等 | DFS |
| 15 | LC0046 | 全排列 | 中等 | 回溯 |
| 16 | LC0088 | 合并两个有序数组 | 简单 | 双指针 |
| 17 | LC0020 | 有效的括号 | 简单 | 栈 |
| 18 | LC0121 | 买卖股票的最佳时机 | 简单 | 贪心 |
| 19 | LC0236 | 二叉树的最近公共祖先 | 中等 | 二叉树 |
| 20 | LC0103 | 二叉树的锯齿形层次遍历 | 中等 | BFS |
| 21 | LC0092 | 反转链表 II | 中等 | 链表 |
| 22 | LC0141 | 环形链表 | 简单 | 双指针 |
| 23 | LC0054 | 螺旋矩阵 | 中等 | 模拟 |
| 24 | LC0300 | 最长上升子序列 | 中等 | 动态规划,贪心 |
| 25 | LC0023 | 合并 K 个排序链表 | 困难 | 堆 |
| 26 | LC0143 | 重排链表 | 中等 | 链表 |
| 27 | LC0415 | 字符串相加 | 简单 | 模拟 |
| 28 | LC0056 | 合并区间 | 中等 | 排序 |
| 29 | LC0160 | 相交链表 | 简单 | 双指针 |
| 30 | LC0042 | 接雨水 | 困难 | 单调栈 |
| 31 | LC0072 | 编辑距离 | 中等 | 动态规划 |
| 32 | LC0124 | 二叉树中的最大路径和 | 困难 | 动态规划 |
| 33 | LC0093 | 复原 IP 地址 | 中等 | 回溯 |
| 34 | LC0142 | 环形链表 II | 中等 | 双指针 |
| 35 | LC0019 | 删除链表的倒数第 N 个节点 | 中等 | 双指针 |
| 36 | LC1143 | 最长公共子序列 | 中等 | 动态规划 |
| 37 | LC0082 | 删除排序链表中的重复元素 II | 中等 | 链表 |
| 38 | LC0004 | 寻找两个正序数组的中位数 | 困难 | 二分查找 |
| 39 | LC0199 | 二叉树的右视图 | 中等 | 二叉树 |
| 40 | LC0094 | 二叉树的中序遍历 | 简单 | 二叉树 |
| 41 | LC0165 | 比较版本号 | 中等 | 字符串 |
| 42 | LC0704 | 二分查找 | 简单 | 二分查找 |
| 43 | LC0232 | 用栈实现队列 | 简单 | 栈,队列 |
| 44 | LC0022 | 括号生成 | 中等 | 回溯 |
| 45 | LC0148 | 排序链表 | 中等 | 归并排序 |
| 46 | LC0031 | 下一个排列 | 中等 | 思维题 |
| 47 | LC0239 | 滑动窗口最大值 | 困难 | 单调队列 |
| 48 | LC0069 | x 的平方根 | 简单 | 二分答案 |
| 49 | LC0002 | 两数相加 | 中等 | 链表 |
| 50 | LC0008 | 字符串转换整数 (atoi) | 中等 | 模拟 |
| 51 | LC0032 | 最长有效括号 | 困难 | 动态规划 |
| 52 | LC0070 | 爬楼梯 | 简单 | 动态规划 |
| 53 | LC0322 | 零钱兑换 | 中等 | 动态规划 |
| 54 | LC0043 | 字符串相乘 | 中等 | 模拟 |
| 55 | LC0076 | 最小覆盖子串 | 困难 | 滑动窗口 |
| 56 | LC0041 | 缺失的第一个正数 | 困难 | 原地哈希 |
| 57 | LC0105 | 从前序与中序遍历序列构造二叉树 | 中等 | 二叉树 |
| 58 | 剑指 Offer 22 | 链表中倒数第 k 个节点 | 简单 | 链表 |
| 59 | LC0151 | 翻转字符串里的单词 | 中等 | 字符串 |
| 60 | LC0078 | 子集 | 中等 | 回溯 |
| 61 | LC0129 | 求根到叶子节点数字之和 | 中等 | 二叉树 |
| 62 | LC0155 | 最小栈 | 中等 | 栈 |
| 63 | LC0101 | 对称二叉树 | 简单 | 二叉树 |
| 64 | LC0034 | 在排序数组中查找元素的第一个和 最后一个位置 | 中等 | 二分查找 |
| 65 | LC0104 | 二叉树的最大深度 | 简单 | 二叉树 |
| 66 | LC0039 | 组合总和 | 中等 | 回溯 |
| 67 | LC0394 | 字符串解码 | 中等 | 栈 |
| 68 | LC0144 | 二叉树的前序遍历 | 简单 | 二叉树 |
| 69 | LC0470 | 用 Rand7() 实现 Rand10() | 中等 | 概率论 |
| 70 | LC0110 | 平衡二叉树 | 简单 | 二叉树 |
| 71 | LC0064 | 最小路径和 | 中等 | 动态规划 |
| 72 | LC0048 | 旋转图像 | 中等 | 思维题 |
| 73 | LC0543 | 二叉树的直径 | 简单 | 动态规划 |
| 74 | LC0221 | 最大正方形 | 中等 | 动态规划 |
| 75 | LC0122 | 买卖股票的最佳时机 II | 中等 | 动态规划 |
| 76 | LC0128 | 最长连续序列 | 中等 | 哈希表 |
| 77 | LC0240 | 搜索二维矩阵 II | 中等 | 双指针 |
| 78 | LC0098 | 验证二叉搜索树 | 中等 | 二叉树 |
| 79 | LC0234 | 回文链表 | 简单 | 链表 |
| 80 | LC0014 | 最长公共前缀 | 简单 | 字符串 |
| 81 | LC0162 | 寻找峰值 | 中等 | 二分查找 |
| 82 | LC0695 | 岛屿的最大面积 | 中等 | DFS |
| 83 | LC0113 | 路径总和 II | 中等 | 回溯 |
| 84 | LC0662 | 二叉树最大宽度 | 中等 | BFS |
| 85 | LC0062 | 不同路径 | 中等 | 动态规划 |
| 86 | LC0152 | 乘积最大子数组 | 中等 | 动态规划 |
| 87 | LC0198 | 打家劫舍 | 中等 | 动态规划 |
| 88 | LC0179 | 最大数 | 中等 | 贪心 |
| 89 | LC0112 | 路径总和 | 简单 | 二叉树 |
| 90 | LC0560 | 和为 K 的子数组 | 中等 | 前缀和 |
| 91 | LC0227 | 基本计算器 II | 中等 | 栈 |
| 92 | LC0169 | 多数元素 | 简单 | 摩尔投票法 |
| 93 | LC0718 | 最长重复子数组 | 中等 | 动态规划 |
| 94 | LC0209 | 长度最小的子数组 | 中等 | 滑动窗口 |
| 95 | LC0139 | 单词拆分 | 中等 | 动态规划 |
| 96 | LC0083 | 删除排序链表中的重复元素 | 简单 | 链表 |
| 97 | LC0226 | 翻转二叉树 | 简单 | 二叉树 |
| 98 | LC0024 | 两两交换链表中的节点 | 中等 | 链表 |
| 99 | LC0283 | 移动零 | 简单 | 栈 |
| 100 | LC0912 | 手撕堆排序 | 中等 | 堆排序 |
| 101 | LC0468 | 验证 IP 地址 | 中等 | 字符串 |
| 102 | LC0739 | 每日温度 | 中等 | 单调栈 |
| 103 | LC0297 | 二叉树的序列化与反序列化 | 困难 | 二叉树 |
| 104 | LC0138 | 复制带随机指针的链表 | 中等 | 链表 |
| 105 | LC0224 | 基本计算器 | 困难 | 栈 |
| 106 | LC0153 | 寻找旋转排序数组中的最小值 | 中等 | 二分查找 |
| 107 | LC0207 | 课程表 | 中等 | 拓扑排序 |
| 108 | LC0460 | LFU 缓存 | 困难 | 链表 |
| 109 | LC0079 | 单词搜索 | 中等 | 回溯 |
| 110 | LC0402 | 移掉 K 位数字 | 中等 | 单调栈 |
| 111 | LC0047 | 全排列 II | 中等 | 回溯 |
| 112 | LC0136 | 只出现一次的数字 | 简单 | 位运算 |
| 113 | LC0011 | 盛最多水的容器 | 中等 | 双指针 |
| 114 | LC0912 | 手撕归并排序 | 中等 | 归并排序 |
| 115 | 剑指 Offer 09 | 用两个栈实现队列 | 简单 | 栈 |
| 116 | LC0061 | 旋转链表 | 中等 | 链表 |
| 117 | LC0123 | 买卖股票的最佳时机 III | 困难 | 动态规划 |
| 118 | LC0498 | 对角线遍历 | 中等 | 模拟 |
| 119 | LC0958 | 二叉树的完全性检验 | 中等 | 二叉树 |
| 120 | LC0055 | 跳跃游戏 | 中等 | 贪心 |
| 121 | 剑指 Offer 36 | 二叉搜索树与双向链表 | 中等 | 二叉树 |
| 122 | LC0040 | 组合总和 II | 中等 | 回溯 |
| 123 | LC0016 | 最接近的三数之和 | 中等 | 双指针 |
| 124 | LC0026 | 删除排序数组中的重复项 | 简单 | 双指针 |
| 125 | LC0074 | 搜索二维矩阵 | 中等 | 二分查找 |
| 126 | 剑指 Offer 51 | 数组中的逆序对 | 困难 | 归并排序 |
| 127 | LC0007 | 整数反转 | 中等 | 模拟 |
| 128 | 补充题 23 | 检测循环依赖 | 中等 | 拓扑排序 |
| 129 | 补充题 1 | 排序奇升偶降链表 | 中等 | 链表 |
| 130 | LC0114 | 二叉树展开为链表 | 中等 | 二叉树 |
| 131 | LC0059 | 螺旋矩阵 II | 中等 | 模拟 |
| 132 | LC0518 | 零钱兑换 II | 中等 | 动态规划 |
| 133 | 剑指 Offer 26 | 树的子结构 | 中等 | 二叉树 |
| 134 | LC0050 | Pow(x, n) | 中等 | 快速幂 |
| 135 | LC0145 | 二叉树的后序遍历 | 中等 | 二叉树 |
| 136 | LC0075 | 颜色分类 | 中等 | 双指针 |
| 137 | LC0572 | 另一个树的子树 | 简单 | 二叉树 |
| 138 | LC0440 | 字典序的第 K 小数字 | 困难 | 字典树 |
| 139 | 剑指 Offer 40 | 最小的 k 个数 | 简单 | 快速选择 |
| 140 | 剑指 Offer 54 | 二叉搜索树的第 k 大节点 | 简单 | 二叉树 |
| 141 | LC0091 | 解码方法 | 中等 | 动态规划 |
| 142 | 剑指 Offer 42 | 连续子数组的最大和 | 简单 | 动态规划 |
| 143 | LC0442 | 数组中重复的数据 | 中等 | 原地哈希 |
| 144 | LC0329 | 矩阵中的最长递增路径 | 困难 | 记忆化搜索 |
| 145 | LC0450 | 删除二叉搜索树中的节点 | 中等 | 二叉树 |
| 146 | LC0135 | 分发糖果 | 困难 | 贪心 |
| 147 | LC0125 | 验证回文串 | 简单 | 字符串 |
| 148 | 剑指 Offer 10-II | 青蛙跳台阶问题 | 简单 | 动态规划 |
| 149 | LC0010 | 正则表达式匹配 | 困难 | 动态规划 |
| 150 | LC0445 | 两数相加 II | 中等 | 链表 |
| 151 | LC0045 | 跳跃游戏 II | 中等 | 贪心 |
| 152 | 剑指 Offer 04 | 二维数组中的查找 | 简单 | 双指针 |
| 153 | 剑指 Offer 10-I | 斐波那契数列 | 简单 | 动态规划 |
| 154 | 牛客 311 | 圆环回原点问题 | 中等 | 动态规划 |
| 155 | LC0328 | 奇偶链表 | 中等 | 链表 |
| 156 | LC0347 | 前 K 个高频元素 | 中等 | 桶排序 |
| 157 | LC0208 | 实现 Trie (前缀树) | 中等 | 前缀树 |
| 158 | LC0230 | 二叉搜索树中第 K 小的元素 | 中等 | 二叉树 |
| 159 | LC0295 | 数据流的中位数 | 困难 | 堆 |
| 160 | LC0096 | 不同的二叉搜索树 | 中等 | 数学 |
| 161 | LC0225 | 用队列实现栈 | 简单 | 栈 |
| 162 | LC0106 | 从中序与后序遍历序列构造二叉树 | 中等 | 二叉树 |
| 163 | 剑指 Offer 62 | 圆圈中最后剩下的数字 | 简单 | 动态规划 |
| 164 | LC0213 | 打家劫舍 II | 中等 | 动态规划 |
| 165 | LC0516 | 最长回文子序列 | 中等 | 动态规划 |
| 166 | LC0189 | 轮转数组 | 中等 | 双指针 |
| 167 | LC0287 | 寻找重复数 | 中等 | 双指针 |
| 168 | 剑指 Offer 21 | 调整数组顺序使奇数位于偶数前面 | 简单 | 双指针 |
| 169 | LC0678 | 有效的括号字符串 | 中等 | 栈 |
| 170 | LC0120 | 三角形最小路径和 | 中等 | 动态规划 |
| 171 | LC0887 | 鸡蛋掉落 | 困难 | 动态规划 |
| 172 | LC0009 | 回文数 | 简单 | 数学 |
| 173 | LC0384 | 打乱数组 | 中等 | 洗牌算法 |
| 174 | LC0085 | 最大矩形 | 困难 | 单调栈 |
| 175 | LC0044 | 通配符匹配 | 困难 | 动态规划 |
| 176 | LC0611 | 有效三角形的个数 | 中等 | 双指针 |
| 177 | LC0210 | 课程表 II | 中等 | 拓扑排序 |
| 178 | LC0067 | 24 点游戏 | 困难 | 回溯 |
| 179 | LC0400 | 第 N 个数字 | 中等 | 数学 |
| 180 | LC0134 | 加油站 | 中等 | 贪心 |
| 181 | 补充题 9 | 36 进制加法 | 中等 | 模拟 |
| 182 | 剑指 Offer 29 | 顺时针打印矩阵 | 简单 | 模拟 |
| 183 | 剑指 Offer 27 | 二叉树的镜像 | 简单 | 二叉树 |
| 184 | LC0264 | 丑数 II | 中等 | 动态规划 |
| 185 | LC0395 | 至少有 K 个重复字符的最长子串 | 中等 | 滑动窗口 |
| 186 | LC0084 | 柱状图中最大的矩形 | 困难 | 单调栈 |
| 187 | LC0097 | 交错字符串 | 中等 | 动态规划 |
| 188 | LC0253 | 会议室 II | 中等 | 差分 |
| 189 | 剑指 Offer 39 | 数组中出现次数超过一半的数字 | 简单 | 摩尔投票法 |
| 190 | LC1004 | 最大连续 1 的个数 III | 中等 | 滑动窗口 |
| 191 | 补充题 14 | 阿拉伯数字转中文数字 | 中等 | 字符串 |
| 192 | LC0316 | 去除重复字母 | 中等 | 单调栈 |
| 193 | LC0349 | 两个数组的交集 | 简单 | 哈希表 |
| 194 | LC0051 | N 皇后 | 困难 | 回溯 |
| 195 | LC0673 | 最长递增子序列的个数 | 中等 | 动态规划 |
| 196 | 面试题 02.05 | 链表求和 | 中等 | 链表 |
| 197 | LC0071 | 简化路径 | 中等 | 栈 |
| 198 | LC0344 | 反转字符串 | 简单 | 双指针 |
| 199 | LC0416 | 分割等和子集 | 中等 | 动态规划 |
| 200 | LC0443 | 压缩字符串 | 中等 | 双指针 |