LeetCode 刷题计划,
刷 LeetCode 的目的不是签到打钩,
而是掌握经典算法套路,培养代码直觉,提高编码素养。
推荐按照 刷 LeetCode 吃力正常吗? 中提到的兔系方法,循序渐进,大量训练。
本 Repo 目前包含的解答:
- TypeScript:写 TypeScript 解答,编译到 JavaScript,并支持 Jest 单元测试
- 基本概念
- 时空复杂度,大 O 表示法
- 原地算法
- 数据结构
- 几大排序算法
- 由浅入深的大致顺序
- 数组,字符串
- 链表
- 递归
- 栈,队列
- 分治法
- 贪心法
- 动态规划
- 树、图
- BFS、DFS
(大致整理)
- 书
- Repo
专题地址:https://leetcode-cn.com/explore/learn/card/array-and-string/
# | 数组和字符串 | 锁 | 难度 | ts |
---|---|---|---|---|
## | 数组简介 | |||
724 | 寻找数组的中心索引 | 🟩 简单 | ts | |
747 | 至少是其他数字两倍的最大数 | 🟩 简单 | ts, ts2 | |
66 | 加一 | 🟩 简单 | ts, ts2 | |
## | 二维数组简介 | |||
498 | 对角线遍历 | 🟧 中等 | ts | |
54 | 螺旋矩阵 | 🟧 中等 | ts | |
118 | 杨辉三角 | 🟩 简单 | ts | |
## | 字符串简介 | |||
67 | 二进制求和 | 🟩 简单 | ts | |
28 | 实现 strStr() | 🟩 简单 | ts | |
14 | 最长公共前缀 | 🟩 简单 | ts | |
## | 双指针技巧 | |||
344 | 反转字符串 | 🟩 简单 | ts | |
561 | 数组拆分 I | 🟩 简单 | ts | |
167 | 两数之和 II - 输入有序数组 | 🟩 简单 | ts | |
27 | 移除元素 | 🟩 简单 | ts | |
485 | 最大连续 1 的个数 | 🟩 简单 | ts | |
209 | 长度最小的子数组 | 🟧 中等 | ts | |
## | 小结 | |||
189 | 旋转数组 | 🟩 简单 | ts, ts2, ts3 | |
119 | 杨辉三角 II | 🟩 简单 | ts | |
151 | 翻转字符串里的单词 | 🟧 中等 | ts | |
557 | 反转字符串中的单词 III | 🟩 简单 | ts | |
26 | 删除排序数组中的重复项 | 🟩 简单 | ts | |
283 | 移动零 | 🟩 简单 | ts |
专题地址:https://leetcode-cn.com/explore/learn/card/queue-stack/
# | 队列 & 栈 | 锁 | 难度 | ts |
---|---|---|---|---|
## | 队列:先入先出的数据结构 | |||
622 | 设计循环队列 | 🟧 中等 | ts, ts2 | |
346 | 数据流中的移动平均值 | 🔐 | 🟩 简单 | |
## | 队列和广度优先搜索 | |||
286 | 墙与门 | 🔐 | 🟧 中等 | |
200 | 岛屿数量 | 🟧 中等 | ts, ts2 | |
752 | 打开转盘锁 | 🟧 中等 | ts, ts2, ts3 | |
279 | 完全平方数 | 🟧 中等 | ts, ts2, ts3 | |
## | 栈:后入先出的数据结构 | |||
155 | 最小栈 | 🟩 简单 | ts, ts2 | |
20 | 有效的括号 | 🟩 简单 | ts | |
739 | 每日温度 | 🟧 中等 | ts, ts2 | |
150 | 逆波兰表达式求值 | 🟧 中等 | ts | |
## | 栈和深度优先搜索 | |||
200 | 岛屿数量 | 🟧 中等 | ts, ts2 | |
133 | 克隆图 | 🟧 中等 | ts | |
494 | 目标和 | 🟧 中等 | ts | |
94 | 二叉树的中序遍历 | 🟧 中等 | ts, ts2 | |
## | 小结 | |||
232 | 用栈实现队列 | 🟩 简单 | ts, ts2 | |
225 | 用队列实现栈 | 🟩 简单 | ts, ts2 | |
394 | 字符串解码 | 🟧 中等 | ts | |
733 | 图像渲染 | 🟩 简单 | ts | |
542 | 01 矩阵 | 🟧 中等 | ts | |
841 | 钥匙和房间 | 🟧 中等 | ts |
专题地址:https://leetcode.com/explore/learn/card/recursion-i/
# | Recursion I | 锁 | 难度 | ts |
---|---|---|---|---|
## | Principle of Recursion | |||
344 | 反转字符串 | 🟩 简单 | ts | |
24 | 两两交换链表中的节点 | 🟧 中等 | ts | |
## | Recurrence Relation | |||
206 | 反转链表 | 🟩 简单 | ts | |
700 | 二叉搜索树中的搜索 | 🟩 简单 | ts, ts2 | |
119 | 杨辉三角 II | 🟩 简单 | ts | |
## | Memoization | |||
509 | 斐波那契数 | 🟩 简单 | ts | |
70 | 爬楼梯 | 🟩 简单 | ts | |
## | Complexity Analysis | |||
104 | 二叉树的最大深度 | 🟩 简单 | ts | |
50 | Pow(x, n) | 🟧 中等 | ts | |
## | Conclusion | |||
21 | 合并两个有序链表 | 🟩 简单 | ts | |
779 | 第 K 个语法符号 | 🟧 中等 | ts, ts2 | |
95 | 不同的二叉搜索树 II | 🟧 中等 | ts |
专题地址:https://leetcode.com/explore/learn/card/recursion-ii/
# | Recursion II | 锁 | 难度 | ts |
---|---|---|---|---|
## | Divide and Conquer | |||
912 | 排序数组 | 🟧 中等 | ||
98 | 验证二叉搜索树 | 🟧 中等 | ts, ts2, ts3 | |
240 | 搜索二维矩阵 II | 🟧 中等 | ||
## | Backtracking | |||
52 | N 皇后 II | 🟥 困难 | ts | |
489 | 扫地机器人 | 🔐 | 🟥 困难 | |
37 | 解数独 | 🟥 困难 | ts, ts2 | |
77 | 组合 | 🟧 中等 | ||
## | Recursion to Iteration | |||
100 | 相同的树 | 🟩 简单 | ||
22 | 括号生成 | 🟧 中等 | ||
94 | 二叉树的中序遍历 | 🟧 中等 | ts, ts2 | |
102 | 二叉树的层序遍历 | 🟧 中等 | ||
## | Conclusion | |||
426 | 将二叉搜索树转化为排序的双向链表 | 🔐 | 🟧 中等 | |
84 | 柱状图中最大的矩形 | 🟥 困难 | ||
46 | 全排列 | 🟧 中等 | ||
17 | 电话号码的字母组合 | 🟧 中等 | ||
218 | 天际线问题 | 🟥 困难 |
专题地址:https://leetcode-cn.com/explore/learn/card/linked-list/
# | 链表 | 锁 | 难度 | ts |
---|---|---|---|---|
## | 单链表 | |||
707 | 设计链表 | 🟧 中等 | ts, ts2, ts3 | |
## | 双指针技巧 | |||
141 | 环形链表 | 🟩 简单 | ts | |
142 | 环形链表 II | 🟧 中等 | ts | |
160 | 相交链表 | 🟩 简单 | ts | |
19 | 删除链表的倒数第 N 个节点 | 🟧 中等 | ts, ts2 | |
## | 经典问题 | |||
206 | 反转链表 | 🟩 简单 | ts | |
203 | 移除链表元素 | 🟩 简单 | ts | |
328 | 奇偶链表 | 🟧 中等 | ts | |
234 | 回文链表 | 🟩 简单 | ts, ts2 | |
## | 双链表 | |||
707 | 设计链表 | 🟧 中等 | ts, ts2, ts3 | |
## | 小结 | |||
21 | 合并两个有序链表 | 🟩 简单 | ts | |
2 | 两数相加 | 🟧 中等 | ts | |
430 | 扁平化多级双向链表 | 🟧 中等 | ts | |
138 | 复制带随机指针的链表 | 🟧 中等 | ts | |
61 | 旋转链表 | 🟧 中等 | ts |
专题地址:https://leetcode-cn.com/explore/learn/card/hash-table/
# | 哈希表 | 锁 | 难度 | ts |
---|---|---|---|---|
## | 设计哈希表 | |||
705 | 设计哈希集合 | 🟩 简单 | ||
706 | 设计哈希映射 | 🟩 简单 | ||
## | 实际应用 - 哈希集合 | |||
217 | 存在重复元素 | 🟩 简单 | ts | |
136 | 只出现一次的数字 | 🟩 简单 | ts | |
349 | 两个数组的交集 | 🟩 简单 | ts, ts2 | |
202 | 快乐数 | 🟩 简单 | ||
## | 实际应用 - 哈希映射 | |||
1 | 两数之和 | 🟩 简单 | ts | |
205 | 同构字符串 | 🟩 简单 | ||
599 | 两个列表的最小索引总和 | 🟩 简单 | ||
387 | 字符串中的第一个唯一字符 | 🟩 简单 | ts, ts2, ts3 | |
350 | 两个数组的交集 II | 🟩 简单 | ts | |
219 | 存在重复元素 II | 🟩 简单 | ||
359 | 日志速率限制器 | 🔐 | 🟩 简单 | |
## | 实际应用 - 设计键 | |||
49 | 字母异位词分组 | 🟧 中等 | ||
249 | 移位字符串分组 | 🔐 | 🟧 中等 | |
36 | 有效的数独 | 🟧 中等 | ts | |
652 | 寻找重复的子树 | 🟧 中等 | ||
## | 小结 | |||
771 | 宝石与石头 | 🟩 简单 | ||
3 | 无重复字符的最长子串 | 🟧 中等 | ||
170 | 两数之和 III - 数据结构设计 | 🔐 | 🟩 简单 | |
454 | 四数相加 II | 🟧 中等 | ||
347 | 前 K 个高频元素 | 🟧 中等 | ||
288 | 单词的唯一缩写 | 🔐 | 🟧 中等 | |
380 | 常数时间插入、删除和获取随机元素 | 🟧 中等 |
专题地址:https://leetcode-cn.com/explore/learn/card/binary-search/
# | 二分查找 | 锁 | 难度 | ts |
---|---|---|---|---|
## | 背景 | |||
704 | 二分查找 | 🟩 简单 | ts | |
## | 模板 I | |||
69 | x 的平方根 | 🟩 简单 | ts, ts2 | |
374 | 猜数字大小 | 🟩 简单 | ts | |
33 | 搜索旋转排序数组 | 🟧 中等 | ts | |
## | 模板 II | |||
278 | 第一个错误的版本 | 🟩 简单 | ts | |
162 | 寻找峰值 | 🟧 中等 | ts | |
153 | 寻找旋转排序数组中的最小值 | 🟧 中等 | ts | |
## | 模板 III | |||
34 | 在排序数组中查找元素的第一个和最后一个位置 | 🟧 中等 | ts, ts2 | |
658 | 找到 K 个最接近的元素 | 🟧 中等 | ts | |
162 | 寻找峰值 | 🟧 中等 | ts | |
## | 模板分析 | |||
270 | 最接近的二叉搜索树值 | 🔐 | 🟩 简单 | |
702 | 搜索长度未知的有序数组 | 🔐 | 🟧 中等 | |
## | 小结 | |||
50 | Pow(x, n) | 🟧 中等 | ts | |
367 | 有效的完全平方数 | 🟩 简单 | ts | |
744 | 寻找比目标字母大的最小字母 | 🟩 简单 | ts | |
## | 更多练习 | |||
153 | 寻找旋转排序数组中的最小值 | 🟧 中等 | ts | |
154 | 寻找旋转排序数组中的最小值 II | 🟥 困难 | ts | |
349 | 两个数组的交集 | 🟩 简单 | ts, ts2 | |
350 | 两个数组的交集 II | 🟩 简单 | ts | |
167 | 两数之和 II - 输入有序数组 | 🟩 简单 | ts | |
## | 更多练习 II | |||
287 | 寻找重复数 | 🟧 中等 | ts | |
4 | 寻找两个有序数组的中位数 | 🟥 困难 | ||
719 | 找出第 k 小的距离对 | 🟥 困难 | ||
410 | 分割数组的最大值 | 🟥 困难 |
专题地址:https://leetcode-cn.com/explore/learn/card/data-structure-binary-tree/
# | 二叉树 | 锁 | 难度 | ts |
---|---|---|---|---|
## | 树的遍历 | |||
144 | 二叉树的前序遍历 | 🟧 中等 | ||
94 | 二叉树的中序遍历 | 🟧 中等 | ts, ts2 | |
145 | 二叉树的后序遍历 | 🟥 困难 | ||
102 | 二叉树的层序遍历 | 🟧 中等 | ||
## | 运用递归解决问题 | |||
104 | 二叉树的最大深度 | 🟩 简单 | ts | |
101 | 对称二叉树 | 🟩 简单 | ts | |
112 | 路径总和 | 🟩 简单 | ts | |
## | 总结 | |||
106 | 从中序与后序遍历序列构造二叉树 | 🟧 中等 | ||
105 | 从前序与中序遍历序列构造二叉树 | 🟧 中等 | ||
116 | 填充每个节点的下一个右侧节点指针 | 🟧 中等 | ||
117 | 填充每个节点的下一个右侧节点指针 II | 🟧 中等 | ||
236 | 二叉树的最近公共祖先 | 🟧 中等 | ||
297 | 二叉树的序列化与反序列化 | 🟥 困难 |
专题地址:https://leetcode-cn.com/explore/learn/card/introduction-to-data-structure-binary-search-tree/
# | 二叉搜索树 | 锁 | 难度 | ts |
---|---|---|---|---|
## | 二叉搜索树简介 | |||
98 | 验证二叉搜索树 | 🟧 中等 | ts, ts2, ts3 | |
173 | 二叉搜索树迭代器 | 🟧 中等 | ||
## | 二叉搜索树中的基本操作 | |||
700 | 二叉搜索树中的搜索 | 🟩 简单 | ts, ts2 | |
701 | 二叉搜索树中的插入操作 | 🟧 中等 | ||
450 | 删除二叉搜索树中的节点 | 🟧 中等 | ||
## | 小结 | |||
703 | 数据流中的第 K 大元素 | 🟩 简单 | ||
235 | 二叉搜索树的最近公共祖先 | 🟩 简单 | ||
220 | 存在重复元素 III | 🟧 中等 | ||
## | 附录:高度平衡的二叉搜索树 | |||
110 | 平衡二叉树 | 🟩 简单 | ||
108 | 将有序数组转换为二叉搜索树 | 🟩 简单 |
专题地址:https://leetcode-cn.com/explore/learn/card/n-ary-tree/
# | N 叉树 | 锁 | 难度 | ts |
---|---|---|---|---|
## | 遍历 | |||
589 | N 叉树的前序遍历 | 🟩 简单 | ||
590 | N 叉树的后序遍历 | 🟩 简单 | ||
429 | N 叉树的层序遍历 | 🟧 中等 | ||
## | 递归 | |||
559 | N 叉树的最大深度 | 🟩 简单 | ||
## | 小结 | |||
428 | 序列化和反序列化 N 叉树 | 🔐 | 🟥 困难 |
专题地址:https://leetcode-cn.com/explore/learn/card/trie/
# | 前缀树 | 锁 | 难度 | ts |
---|---|---|---|---|
## | 前缀树简介 | |||
## | 基本操作 | |||
208 | 实现 Trie (前缀树) | 🟧 中等 | ||
## | 实际应用 I | |||
677 | 键值映射 | 🟧 中等 | ||
648 | 单词替换 | 🟧 中等 | ||
642 | 设计搜索自动补全系统 | 🔐 | 🟥 困难 | |
211 | 添加与搜索单词 - 数据结构设计 | 🟧 中等 | ||
## | 实际应用 II | |||
421 | 数组中两个数的最大异或值 | 🟧 中等 | ||
212 | 单词搜索 II | 🟥 困难 | ||
425 | 单词方块 | 🔐 | 🟥 困难 | |
336 | 回文对 | 🟥 困难 |
专题地址:https://leetcode-cn.com/explore/interview/card/top-interview-questions-easy/
# | 初级算法 | 锁 | 难度 | ts |
---|---|---|---|---|
## | 数组 | |||
26 | 删除排序数组中的重复项 | 🟩 简单 | ts | |
122 | 买卖股票的最佳时机 II | 🟩 简单 | ts | |
189 | 旋转数组 | 🟩 简单 | ts, ts2, ts3 | |
217 | 存在重复元素 | 🟩 简单 | ts | |
136 | 只出现一次的数字 | 🟩 简单 | ts | |
350 | 两个数组的交集 II | 🟩 简单 | ts | |
66 | 加一 | 🟩 简单 | ts, ts2 | |
283 | 移动零 | 🟩 简单 | ts | |
1 | 两数之和 | 🟩 简单 | ts | |
36 | 有效的数独 | 🟧 中等 | ts | |
48 | 旋转图像 | 🟧 中等 | ts | |
## | 字符串 | |||
344 | 反转字符串 | 🟩 简单 | ts | |
7 | 整数反转 | 🟩 简单 | ts | |
387 | 字符串中的第一个唯一字符 | 🟩 简单 | ts, ts2, ts3 | |
242 | 有效的字母异位词 | 🟩 简单 | ts, ts2 | |
125 | 验证回文串 | 🟩 简单 | ts, ts2 | |
8 | 字符串转换整数 (atoi) | 🟧 中等 | ts, ts2 | |
28 | 实现 strStr() | 🟩 简单 | ts | |
38 | 外观数列 | 🟩 简单 | ts | |
14 | 最长公共前缀 | 🟩 简单 | ts | |
## | 链表 | |||
237 | 删除链表中的节点 | 🟩 简单 | ts | |
19 | 删除链表的倒数第 N 个节点 | 🟧 中等 | ts, ts2 | |
206 | 反转链表 | 🟩 简单 | ts | |
21 | 合并两个有序链表 | 🟩 简单 | ts | |
234 | 回文链表 | 🟩 简单 | ts, ts2 | |
141 | 环形链表 | 🟩 简单 | ts | |
## | 树 | |||
104 | 二叉树的最大深度 | 🟩 简单 | ts | |
98 | 验证二叉搜索树 | 🟧 中等 | ts, ts2, ts3 | |
101 | 对称二叉树 | 🟩 简单 | ts | |
102 | 二叉树的层序遍历 | 🟧 中等 | ||
108 | 将有序数组转换为二叉搜索树 | 🟩 简单 | ||
## | 排序和搜索 | |||
88 | 合并两个有序数组 | 🟩 简单 | ||
278 | 第一个错误的版本 | 🟩 简单 | ts | |
## | 动态规划 | |||
70 | 爬楼梯 | 🟩 简单 | ts | |
121 | 买卖股票的最佳时机 | 🟩 简单 | ts | |
53 | 最大子序和 | 🟩 简单 | ||
198 | 打家劫舍 | 🟩 简单 | ||
## | 设计问题 | |||
384 | 打乱数组 | 🟧 中等 | ||
155 | 最小栈 | 🟩 简单 | ts, ts2 | |
## | 数学 | |||
412 | Fizz Buzz | 🟩 简单 | ||
204 | 计数质数 | 🟩 简单 | ||
326 | 3 的幂 | 🟩 简单 | ||
13 | 罗马数字转整数 | 🟩 简单 | ||
## | 其他 | |||
191 | 位 1 的个数 | 🟩 简单 | ||
461 | 汉明距离 | 🟩 简单 | ||
190 | 颠倒二进制位 | 🟩 简单 | ||
118 | 杨辉三角 | 🟩 简单 | ts | |
20 | 有效的括号 | 🟩 简单 | ts | |
268 | 缺失数字 | 🟩 简单 |
专题地址:https://leetcode-cn.com/explore/interview/card/top-interview-questions-medium/
# | 中级算法 | 锁 | 难度 | ts |
---|---|---|---|---|
## | 数组和字符串 | |||
15 | 三数之和 | 🟧 中等 | ||
73 | 矩阵置零 | 🟧 中等 | ||
49 | 字母异位词分组 | 🟧 中等 | ||
3 | 无重复字符的最长子串 | 🟧 中等 | ||
5 | 最长回文子串 | 🟧 中等 | ||
334 | 递增的三元子序列 | 🟧 中等 | ||
## | 链表 | |||
2 | 两数相加 | 🟧 中等 | ts | |
328 | 奇偶链表 | 🟧 中等 | ts | |
160 | 相交链表 | 🟩 简单 | ts | |
## | 树和图 | |||
94 | 二叉树的中序遍历 | 🟧 中等 | ts, ts2 | |
103 | 二叉树的锯齿形层次遍历 | 🟧 中等 | ||
105 | 从前序与中序遍历序列构造二叉树 | 🟧 中等 | ||
116 | 填充每个节点的下一个右侧节点指针 | 🟧 中等 | ||
230 | 二叉搜索树中第 K 小的元素 | 🟧 中等 | ||
200 | 岛屿数量 | 🟧 中等 | ts, ts2 | |
## | 回溯算法 | |||
17 | 电话号码的字母组合 | 🟧 中等 | ||
22 | 括号生成 | 🟧 中等 | ||
46 | 全排列 | 🟧 中等 | ||
78 | 子集 | 🟧 中等 | ||
79 | 单词搜索 | 🟧 中等 | ||
## | 排序和搜索 | |||
75 | 颜色分类 | 🟧 中等 | ||
347 | 前 K 个高频元素 | 🟧 中等 | ||
215 | 数组中的第 K 个最大元素 | 🟧 中等 | ||
162 | 寻找峰值 | 🟧 中等 | ts | |
34 | 在排序数组中查找元素的第一个和最后一个位置 | 🟧 中等 | ts, ts2 | |
56 | 合并区间 | 🟧 中等 | ||
33 | 搜索旋转排序数组 | 🟧 中等 | ts | |
240 | 搜索二维矩阵 II | 🟧 中等 | ||
## | 动态规划 | |||
55 | 跳跃游戏 | 🟧 中等 | ||
62 | 不同路径 | 🟧 中等 | ||
322 | 零钱兑换 | 🟧 中等 | ||
300 | 最长上升子序列 | 🟧 中等 | ||
## | 设计问题 | |||
297 | 二叉树的序列化与反序列化 | 🟥 困难 | ||
380 | 常数时间插入、删除和获取随机元素 | 🟧 中等 | ||
## | 数学 | |||
202 | 快乐数 | 🟩 简单 | ||
172 | 阶乘后的零 | 🟩 简单 | ||
171 | Excel 表列序号 | 🟩 简单 | ||
50 | Pow(x, n) | 🟧 中等 | ts | |
69 | x 的平方根 | 🟩 简单 | ts, ts2 | |
29 | 两数相除 | 🟧 中等 | ||
166 | 分数到小数 | 🟧 中等 | ||
## | 其他 | |||
371 | 两整数之和 | 🟩 简单 | ||
150 | 逆波兰表达式求值 | 🟧 中等 | ts | |
169 | 多数元素 | 🟩 简单 | ||
621 | 任务调度器 | 🟧 中等 |
专题地址:https://leetcode-cn.com/explore/interview/card/top-interview-questions-hard/
# | 高级算法 | 锁 | 难度 | ts |
---|---|---|---|---|
## | 数组和字符串 | |||
238 | 除自身以外数组的乘积 | 🟧 中等 | ||
54 | 螺旋矩阵 | 🟧 中等 | ts | |
454 | 四数相加 II | 🟧 中等 | ||
11 | 盛最多水的容器 | 🟧 中等 | ||
289 | 生命游戏 | 🟧 中等 | ||
41 | 缺失的第一个正数 | 🟥 困难 | ||
128 | 最长连续序列 | 🟥 困难 | ||
287 | 寻找重复数 | 🟧 中等 | ts | |
227 | 基本计算器 II | 🟧 中等 | ||
239 | 滑动窗口最大值 | 🟥 困难 | ||
76 | 最小覆盖子串 | 🟥 困难 | ||
## | 链表 | |||
23 | 合并 K 个排序链表 | 🟥 困难 | ||
148 | 排序链表 | 🟧 中等 | ||
138 | 复制带随机指针的链表 | 🟧 中等 | ts | |
## | 树和图 | |||
127 | 单词接龙 | 🟧 中等 | ||
130 | 被围绕的区域 | 🟧 中等 | ||
236 | 二叉树的最近公共祖先 | 🟧 中等 | ||
124 | 二叉树中的最大路径和 | 🟥 困难 | ||
547 | 朋友圈 | 🟧 中等 | ||
207 | 课程表 | 🟧 中等 | ||
210 | 课程表 II | 🟧 中等 | ||
329 | 矩阵中的最长递增路径 | 🟥 困难 | ||
315 | 计算右侧小于当前元素的个数 | 🟥 困难 | ||
## | 回溯算法 | |||
131 | 分割回文串 | 🟧 中等 | ||
212 | 单词搜索 II | 🟥 困难 | ||
301 | 删除无效的括号 | 🟥 困难 | ||
44 | 通配符匹配 | 🟥 困难 | ||
10 | 正则表达式匹配 | 🟥 困难 | ||
## | 排序和搜索 | |||
324 | 摆动排序 II | 🟧 中等 | ||
378 | 有序矩阵中第 K 小的元素 | 🟧 中等 | ||
4 | 寻找两个有序数组的中位数 | 🟥 困难 | ||
## | 动态规划 | |||
152 | 乘积最大子数组 | 🟧 中等 | ||
309 | 最佳买卖股票时机含冷冻期 | 🟧 中等 | ||
279 | 完全平方数 | 🟧 中等 | ts, ts2, ts3 | |
139 | 单词拆分 | 🟧 中等 | ||
140 | 单词拆分 II | 🟥 困难 | ||
312 | 戳气球 | 🟥 困难 | ||
## | 设计问题 | |||
146 | LRU 缓存机制 | 🟧 中等 | ||
208 | 实现 Trie (前缀树) | 🟧 中等 | ||
341 | 扁平化嵌套列表迭代器 | 🟧 中等 | ||
295 | 数据流的中位数 | 🟥 困难 | ||
## | 数学 | |||
179 | 最大数 | 🟧 中等 | ||
149 | 直线上最多的点数 | 🟥 困难 | ||
## | 其他 | |||
406 | 根据身高重建队列 | 🟧 中等 | ||
42 | 接雨水 | 🟥 困难 | ||
218 | 天际线问题 | 🟥 困难 | ||
84 | 柱状图中最大的矩形 | 🟥 困难 |
专题地址:https://leetcode-cn.com/explore/interview/card/top-interview-quesitons/
# | 算法面试题汇总 | 锁 | 难度 | ts |
---|---|---|---|---|
## | 开始之前 | |||
136 | 只出现一次的数字 | 🟩 简单 | ts | |
169 | 多数元素 | 🟩 简单 | ||
240 | 搜索二维矩阵 II | 🟧 中等 | ||
88 | 合并两个有序数组 | 🟩 简单 | ||
887 | 鸡蛋掉落 | 🟥 困难 | ||
## | 主题要点 | |||
## | 字符串 | |||
125 | 验证回文串 | 🟩 简单 | ts, ts2 | |
131 | 分割回文串 | 🟧 中等 | ||
139 | 单词拆分 | 🟧 中等 | ||
140 | 单词拆分 II | 🟥 困难 | ||
208 | 实现 Trie (前缀树) | 🟧 中等 | ||
212 | 单词搜索 II | 🟥 困难 | ||
242 | 有效的字母异位词 | 🟩 简单 | ts, ts2 | |
387 | 字符串中的第一个唯一字符 | 🟩 简单 | ts, ts2, ts3 | |
344 | 反转字符串 | 🟩 简单 | ts | |
## | 数组 | |||
152 | 乘积最大子数组 | 🟧 中等 | ||
169 | 多数元素 | 🟩 简单 | ||
189 | 旋转数组 | 🟩 简单 | ts, ts2, ts3 | |
217 | 存在重复元素 | 🟩 简单 | ts | |
283 | 移动零 | 🟩 简单 | ts | |
384 | 打乱数组 | 🟧 中等 | ||
350 | 两个数组的交集 II | 🟩 简单 | ts | |
334 | 递增的三元子序列 | 🟧 中等 | ||
240 | 搜索二维矩阵 II | 🟧 中等 | ||
238 | 除自身以外数组的乘积 | 🟧 中等 | ||
## | 堆、栈与队列 | |||
155 | 最小栈 | 🟩 简单 | ts, ts2 | |
215 | 数组中的第 K 个最大元素 | 🟧 中等 | ||
295 | 数据流的中位数 | 🟥 困难 | ||
378 | 有序矩阵中第 K 小的元素 | 🟧 中等 | ||
347 | 前 K 个高频元素 | 🟧 中等 | ||
239 | 滑动窗口最大值 | 🟥 困难 | ||
227 | 基本计算器 II | 🟧 中等 | ||
341 | 扁平化嵌套列表迭代器 | 🟧 中等 | ||
150 | 逆波兰表达式求值 | 🟧 中等 | ts | |
## | 链表 | |||
138 | 复制带随机指针的链表 | 🟧 中等 | ts | |
141 | 环形链表 | 🟩 简单 | ts | |
148 | 排序链表 | 🟧 中等 | ||
160 | 相交链表 | 🟩 简单 | ts | |
206 | 反转链表 | 🟩 简单 | ts | |
234 | 回文链表 | 🟩 简单 | ts, ts2 | |
237 | 删除链表中的节点 | 🟩 简单 | ts | |
328 | 奇偶链表 | 🟧 中等 | ts | |
## | 哈希与映射 | |||
171 | Excel 表列序号 | 🟩 简单 | ||
454 | 四数相加 II | 🟧 中等 | ||
380 | 常数时间插入、删除和获取随机元素 | 🟧 中等 | ||
## | 树 | |||
230 | 二叉搜索树中第 K 小的元素 | 🟧 中等 | ||
236 | 二叉树的最近公共祖先 | 🟧 中等 | ||
297 | 二叉树的序列化与反序列化 | 🟥 困难 | ||
218 | 天际线问题 | 🟥 困难 | ||
## | 排序与检索 | |||
179 | 最大数 | 🟧 中等 | ||
324 | 摆动排序 II | 🟧 中等 | ||
162 | 寻找峰值 | 🟧 中等 | ts | |
287 | 寻找重复数 | 🟧 中等 | ts | |
315 | 计算右侧小于当前元素的个数 | 🟥 困难 | ||
## | 动态规划 | |||
395 | 至少有 K 个重复字符的最长子串 | 🟧 中等 | ||
124 | 二叉树中的最大路径和 | 🟥 困难 | ||
128 | 最长连续序列 | 🟥 困难 | ||
198 | 打家劫舍 | 🟩 简单 | ||
279 | 完全平方数 | 🟧 中等 | ts, ts2, ts3 | |
300 | 最长上升子序列 | 🟧 中等 | ||
322 | 零钱兑换 | 🟧 中等 | ||
329 | 矩阵中的最长递增路径 | 🟥 困难 | ||
## | 图论 | |||
127 | 单词接龙 | 🟧 中等 | ||
200 | 岛屿数量 | 🟧 中等 | ts, ts2 | |
207 | 课程表 | 🟧 中等 | ||
210 | 课程表 II | 🟧 中等 | ||
## | 数学 & 位运算 | |||
136 | 只出现一次的数字 | 🟩 简单 | ts | |
149 | 直线上最多的点数 | 🟥 困难 | ||
166 | 分数到小数 | 🟧 中等 | ||
172 | 阶乘后的零 | 🟩 简单 | ||
190 | 颠倒二进制位 | 🟩 简单 | ||
191 | 位 1 的个数 | 🟩 简单 | ||
204 | 计数质数 | 🟩 简单 | ||
268 | 缺失数字 | 🟩 简单 | ||
326 | 3 的幂 | 🟩 简单 | ||
## | 模拟面试 | |||
202 | 快乐数 | 🟩 简单 |
专题地址:https://leetcode-cn.com/explore/interview/card/tencent/
# | 腾讯 | 锁 | 难度 | ts |
---|---|---|---|---|
## | 数组与字符串 | |||
1 | 两数之和 | 🟩 简单 | ts | |
4 | 寻找两个有序数组的中位数 | 🟥 困难 | ||
5 | 最长回文子串 | 🟧 中等 | ||
8 | 字符串转换整数 (atoi) | 🟧 中等 | ts, ts2 | |
14 | 最长公共前缀 | 🟩 简单 | ts | |
15 | 三数之和 | 🟧 中等 | ||
16 | 最接近的三数之和 | 🟧 中等 | ||
20 | 有效的括号 | 🟩 简单 | ts | |
26 | 删除排序数组中的重复项 | 🟩 简单 | ts | |
11 | 盛最多水的容器 | 🟧 中等 | ||
43 | 字符串相乘 | 🟧 中等 | ||
344 | 反转字符串 | 🟩 简单 | ts | |
557 | 反转字符串中的单词 III | 🟩 简单 | ts | |
238 | 除自身以外数组的乘积 | 🟧 中等 | ||
217 | 存在重复元素 | 🟩 简单 | ts | |
54 | 螺旋矩阵 | 🟧 中等 | ts | |
59 | 螺旋矩阵 II | 🟧 中等 | ts | |
88 | 合并两个有序数组 | 🟩 简单 | ||
## | 链表突击 | |||
206 | 反转链表 | 🟩 简单 | ts | |
2 | 两数相加 | 🟧 中等 | ts | |
21 | 合并两个有序链表 | 🟩 简单 | ts | |
23 | 合并 K 个排序链表 | 🟥 困难 | ||
61 | 旋转链表 | 🟧 中等 | ts | |
141 | 环形链表 | 🟩 简单 | ts | |
142 | 环形链表 II | 🟧 中等 | ts | |
160 | 相交链表 | 🟩 简单 | ts | |
237 | 删除链表中的节点 | 🟩 简单 | ts | |
## | 数学与数字 | |||
7 | 整数反转 | 🟩 简单 | ts | |
9 | 回文数 | 🟩 简单 | ||
136 | 只出现一次的数字 | 🟩 简单 | ts | |
169 | 多数元素 | 🟩 简单 | ||
231 | 2 的幂 | 🟩 简单 | ||
## | 排序与搜索 | |||
148 | 排序链表 | 🟧 中等 | ||
33 | 搜索旋转排序数组 | 🟧 中等 | ts | |
215 | 数组中的第 K 个最大元素 | 🟧 中等 | ||
230 | 二叉搜索树中第 K 小的元素 | 🟧 中等 | ||
104 | 二叉树的最大深度 | 🟩 简单 | ts | |
124 | 二叉树中的最大路径和 | 🟥 困难 | ||
235 | 二叉搜索树的最近公共祖先 | 🟩 简单 | ||
236 | 二叉树的最近公共祖先 | 🟧 中等 | ||
## | 回溯算法 | |||
22 | 括号生成 | 🟧 中等 | ||
78 | 子集 | 🟧 中等 | ||
46 | 全排列 | 🟧 中等 | ||
89 | 格雷编码 | 🟧 中等 | ||
## | 动态规划 | |||
70 | 爬楼梯 | 🟩 简单 | ts | |
53 | 最大子序和 | 🟩 简单 | ||
121 | 买卖股票的最佳时机 | 🟩 简单 | ts | |
122 | 买卖股票的最佳时机 II | 🟩 简单 | ts | |
62 | 不同路径 | 🟧 中等 | ||
78 | 子集 | 🟧 中等 | ||
## | 设计 | |||
146 | LRU 缓存机制 | 🟧 中等 | ||
155 | 最小栈 | 🟩 简单 | ts, ts2 | |
## | 附加 | |||
292 | Nim 游戏 | 🟩 简单 |
专题地址:https://leetcode-cn.com/explore/interview/card/bytedance/
# | 字节跳动 | 锁 | 难度 | ts |
---|---|---|---|---|
## | 挑战字符串 | |||
3 | 无重复字符的最长子串 | 🟧 中等 | ||
14 | 最长公共前缀 | 🟩 简单 | ts | |
567 | 字符串的排列 | 🟧 中等 | ||
43 | 字符串相乘 | 🟧 中等 | ||
151 | 翻转字符串里的单词 | 🟧 中等 | ts | |
71 | 简化路径 | 🟧 中等 | ||
93 | 复原 IP 地址 | 🟧 中等 | ||
## | 数组与排序 | |||
15 | 三数之和 | 🟧 中等 | ||
695 | 岛屿的最大面积 | 🟧 中等 | ||
33 | 搜索旋转排序数组 | 🟧 中等 | ts | |
674 | 最长连续递增序列 | 🟩 简单 | ||
215 | 数组中的第 K 个最大元素 | 🟧 中等 | ||
128 | 最长连续序列 | 🟥 困难 | ||
60 | 第 k 个排列 | 🟧 中等 | ||
547 | 朋友圈 | 🟧 中等 | ||
56 | 合并区间 | 🟧 中等 | ||
42 | 接雨水 | 🟥 困难 | ||
## | 链表与树 | |||
21 | 合并两个有序链表 | 🟩 简单 | ts | |
206 | 反转链表 | 🟩 简单 | ts | |
2 | 两数相加 | 🟧 中等 | ts | |
148 | 排序链表 | 🟧 中等 | ||
142 | 环形链表 II | 🟧 中等 | ts | |
160 | 相交链表 | 🟩 简单 | ts | |
23 | 合并 K 个排序链表 | 🟥 困难 | ||
236 | 二叉树的最近公共祖先 | 🟧 中等 | ||
103 | 二叉树的锯齿形层次遍历 | 🟧 中等 | ||
## | 动态或贪心 | |||
121 | 买卖股票的最佳时机 | 🟩 简单 | ts | |
122 | 买卖股票的最佳时机 II | 🟩 简单 | ts | |
221 | 最大正方形 | 🟧 中等 | ||
53 | 最大子序和 | 🟩 简单 | ||
120 | 三角形最小路径和 | 🟧 中等 | ||
354 | 俄罗斯套娃信封问题 | 🟥 困难 | ||
## | 数据结构 | |||
155 | 最小栈 | 🟩 简单 | ts, ts2 | |
146 | LRU 缓存机制 | 🟧 中等 | ||
432 | 全 O(1) 的数据结构 | 🟥 困难 | ||
## | 拓展练习 | |||
69 | x 的平方根 | 🟩 简单 | ts, ts2 | |
393 | UTF-8 编码验证 | 🟧 中等 | ||
176 | 第二高的薪水 | 🟩 简单 |
专题地址:https://leetcode-cn.com/explore/interview/card/teambition/
# | Teambition | 锁 | 难度 | ts |
---|---|---|---|---|
## | 挑战数据结构 | |||
23 | 合并 K 个排序链表 | 🟥 困难 | ||
68 | 文本左右对齐 | 🟥 困难 | ||
97 | 交错字符串 | 🟥 困难 | ||
145 | 二叉树的后序遍历 | 🟥 困难 | ||
165 | 比较版本号 | 🟧 中等 | ||
297 | 二叉树的序列化与反序列化 | 🟥 困难 | ||
432 | 全 O(1) 的数据结构 | 🟥 困难 | ||
662 | 二叉树最大宽度 | 🟧 中等 | ||
899 | 有序队列 | 🟥 困难 | ||
907 | 子数组的最小值之和 | 🟧 中等 | ||
## | 挑战算法 | |||
218 | 天际线问题 | 🟥 困难 | ||
410 | 分割数组的最大值 | 🟥 困难 | ||
514 | 自由之路 | 🟥 困难 | ||
546 | 移除盒子 | 🟥 困难 | ||
629 | K 个逆序对数组 | 🟥 困难 | ||
679 | 24 点游戏 | 🟥 困难 | ||
777 | 在 LR 字符串中交换相邻字符 | 🟧 中等 | ||
899 | 有序队列 | 🟥 困难 | ||
940 | 不同的子序列 II | 🟥 困难 | ||
960 | 删列造序 III | 🟥 困难 |