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 | 🟥 困难 |