面试高频 200 题

数组
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 189 | 轮转数组 | [✓] | 数组 数学 双指针 | 🟠 | 🀄️ 🔗 | 26 |
| 498 | 对角线遍历 | [✓] | 数组 矩阵 模拟 | 🟠 | 🀄️ 🔗 | 43 |
| 48 | 旋转图像 | [✓] | 数组 数学 矩阵 | 🟠 | 🀄️ 🔗 | 70 |
| 54 | 螺旋矩阵 | [✓] | 数组 矩阵 模拟 | 🟠 | 🀄️ 🔗 | 186 |
| 59 | 螺旋矩阵 II | [✓] | 数组 矩阵 模拟 | 🟠 | 🀄️ 🔗 | 36 |
链表
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 83 | 删除排序链表中的重复元素 | [✓] | 链表 | 🟢 | 🀄️ 🔗 | 54 |
| 82 | 删除排序链表中的重复元素 II | [✓] | 链表 双指针 | 🟠 | 🀄️ 🔗 | 117 |
| 206 | 反转链表 | [✓] | 递归 链表 | 🟢 | 🀄️ 🔗 | 575 |
| 92 | 反转链表 II | [✓] | 链表 | 🟠 | 🀄️ 🔗 | 184 |
| 25 | K 个一组翻转链表 | [✓] | 递归 链表 | 🔴 | 🀄️ 🔗 | 332 |
| 328 | 奇偶链表 | [✓] | 链表 | 🟠 | 🀄️ 🔗 | 28 |
| 234 | 回文链表 | [✓] | 栈 递归 链表 1+ | 🟢 | 🀄️ 🔗 | 65 |
| 138 | 随机链表的复制 | [✓] | 哈希表 链表 | 🟠 | 🀄️ 🔗 | 47 |
| 61 | 旋转链表 | [✓] | 链表 双指针 | 🟠 | 🀄️ 🔗 | 38 |
栈
- 栈基础
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 1047 | 删除字符串中的所有相邻重复项 | [✓] | 栈 字符串 | 🟢 | 🀄️ 🔗 | 21 |
| 155 | 最小栈 | [✓] | 栈 设计 | 🟠 | 🀄️ 🔗 | 84 |
| 20 | 有效的括号 | [✓] | 栈 字符串 | 🟢 | 🀄️ 🔗 | 207 |
| 224 | 基本计算器 | [✓] | 栈 递归 数学 1+ | 🔴 | 🀄️ 🔗 | 43 |
| 227 | 基本计算器 II | [✓] | 栈 数学 字符串 | 🟠 | 🀄️ 🔗 | 54 |
| 232 | 用栈实现队列 | [✓] | 栈 设计 队列 | 🟢 | 🀄️ 🔗 | 120 |
| 剑指 Offer 9 | 用两个栈实现队列 | [✓] | 栈 设计 队列 | 🟢 | 🀄️ | 44 |
| 394 | 字符串解码 | [✓] | 栈 递归 字符串 | 🟠 | 🀄️ 🔗 | 66 |
| 71 | 简化路径 | [✓] | 栈 字符串 | 🟠 | 🀄️ 🔗 | 21 |
- 单调栈
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 739 | 每日温度 | [✓] | 栈 数组 单调栈 | 🟠 | 🀄️ 🔗 | 46 |
| 503 | 下一个更大元素 II | [✓] | 栈 数组 单调栈 | 🟠 | 🀄️ 🔗 | 16 |
| 42 | 接雨水 | [✓] | 栈 数组 双指针 2+ | 🔴 | 🀄️ 🔗 | 147 |
| 85 | 最大矩形 | [✓] | 栈 数组 动态规划 2+ | 🔴 | 🀄️ 🔗 | 21 |
队列
- 队列基础
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 225 | 用队列实现栈 | [✓] | 栈 设计 队列 | 🟢 | 🀄️ 🔗 | 29 |
- 优先队列
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 295 | 数据流的中位数 | [✓] | 设计 双指针 数据流 2+ | 🔴 | 🀄️ 🔗 | 26 |
| 23 | 合并 K 个升序链表 | [✓] | 链表 分治 堆(优先队列) 1+ | 🔴 | 🀄️ 🔗 | 173 |
哈希表
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 15 | 三数之和 | [✓] | 数组 双指针 排序 | 🟠 | 🀄️ 🔗 | 310 |
| 41 | 缺失的第一个正数 | [✓] | 数组 哈希表 | 🔴 | 🀄️ 🔗 | 97 |
| 128 | 最长连续序列 | [✓] | 并查集 数组 哈希表 | 🟠 | 🀄️ 🔗 | 56 |
| 242 | 有效的字母异位词 | [✓] | 哈希表 字符串 排序 | 🟢 | 🀄️ 🔗 | 17 |
| 442 | 数组中重复的数据 | [✓] | 数组 哈希表 | 🟠 | 🀄️ 🔗 | 19 |
| 剑指 Offer 61 | 扑克牌中的顺子 | [✓] | 数组 排序 | 🟢 | 🀄️ | 21 |
| 剑指 Offer 3 | 数组中重复的数字 | [✓] | 数组 哈希表 排序 | 🟢 | 🀄️ | 16 |
字符串
- 字符串基础
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 125 | 验证回文串 | [✓] | 双指针 字符串 | 🟢 | 🀄️ 🔗 | 29 |
| 5 | 最长回文子串 | [✓] | 双指针 字符串 动态规划 | 🟠 | 🀄️ 🔗 | 222 |
| 344 | 反转字符串 | [✓] | 双指针 字符串 | 🟢 | 🀄️ 🔗 | 17 |
| 557 | 反转字符串中的单词 III | [✓] | 双指针 字符串 | 🟢 | 🀄️ 🔗 | 17 |
| 151 | 反转字符串中的单词 | [✓] | 双指针 字符串 | 🟠 | 🀄️ 🔗 | 81 |
| 43 | 字符串相乘 | [✓] | 数学 字符串 模拟 | 🟠 | 🀄️ 🔗 | 82 |
- 单模式串匹配
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 459 | 重复的子字符串 | [✓] | 字符串 字符串匹配 | 🟢 | 🀄️ 🔗 | 18 |
- 字典树
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 208 | 实现 Trie (前缀树) | [✓] | 设计 字典树 哈希表 1+ | 🟠 | 🀄️ 🔗 | 27 |
| 440 | 字典序的第K小数字 | [✓] | 字典树 | 🔴 | 🀄️ 🔗 | 33 |
树
- 二叉树的遍历
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 144 | 二叉树的前序遍历 | [✓] | 栈 树 深度优先搜索 1+ | 🟢 | 🀄️ 🔗 | 78 |
| 145 | 二叉树的后序遍历 | [✓] | 栈 树 深度优先搜索 1+ | 🟢 | 🀄️ 🔗 | 36 |
| 102 | 二叉树的层序遍历 | [✓] | 树 广度优先搜索 二叉树 | 🟠 | 🀄️ 🔗 | 220 |
| 103 | 二叉树的锯齿形层序遍历 | [✓] | 树 广度优先搜索 二叉树 | 🟠 | 🀄️ 🔗 | 200 |
| 101 | 对称二叉树 | [✓] | 树 深度优先搜索 广度优先搜索 1+ | 🟢 | 🀄️ 🔗 | 76 |
| 112 | 路径总和 | [✓] | 树 深度优先搜索 广度优先搜索 1+ | 🟢 | 🀄️ 🔗 | 65 |
| 113 | 路径总和 II | [✓] | 树 深度优先搜索 回溯 1+ | 🟠 | 🀄️ 🔗 | 69 |
| 236 | 二叉树的最近公共祖先 | [✓] | 树 深度优先搜索 二叉树 | 🟠 | 🀄️ 🔗 | 199 |
| 199 | 二叉树的右视图 | [✓] | 树 深度优先搜索 广度优先搜索 1+ | 🟠 | 🀄️ 🔗 | 118 |
| 297 | 二叉树的序列化与反序列化 | [✓] | 树 深度优先搜索 广度优先搜索 3+ | 🔴 | 🀄️ 🔗 | 49 |
| 114 | 二叉树展开为链表 | [✓] | 栈 树 深度优先搜索 2+ | 🟠 | 🀄️ 🔗 | 28 |
- 二叉树的还原
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 105 | 从前序与中序遍历序列构造二叉树 | [✓] | 树 数组 哈希表 2+ | 🟠 | 🀄️ 🔗 | 84 |
| 106 | 从中序与后序遍历序列构造二叉树 | [✓] | 树 数组 哈希表 2+ | 🟠 | 🀄️ 🔗 | 25 |
- 二叉搜索树
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 98 | 验证二叉搜索树 | [✓] | 树 深度优先搜索 二叉搜索树 1+ | 🟠 | 🀄️ 🔗 | 71 |
| 450 | 删除二叉搜索树中的节点 | [✓] | 树 二叉搜索树 二叉树 | 🟠 | 🀄️ 🔗 | 33 |
| 剑指 Offer 54 | 二叉搜索树的第k大节点 | [✓] | 树 深度优先搜索 二叉搜索树 1+ | 🟢 | 🀄️ | 37 |
| 230 | 二叉搜索树中第 K 小的元素 | [✓] | 树 深度优先搜索 二叉搜索树 1+ | 🟠 | 🀄️ 🔗 | 31 |
| 426 | 将二叉搜索树转化为排序的双向链表 🔒 | [✓] | 栈 树 深度优先搜索 4+ | 🟠 | 🀄️ 🔗 | 16 |
| 110 | 平衡二叉树 | [✓] | 树 深度优先搜索 二叉树 | 🟢 | 🀄️ 🔗 | 77 |
图
- 图的深度优先搜索
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 200 | 岛屿数量 | [✓] | 深度优先搜索 广度优先搜索 并查集 2+ | 🟠 | 🀄️ 🔗 | 211 |
| 695 | 岛屿的最大面积 | [✓] | 深度优先搜索 广度优先搜索 并查集 2+ | 🟠 | 🀄️ 🔗 | 56 |
| 94 | 二叉树的中序遍历 | [✓] | 栈 树 深度优先搜索 1+ | 🟢 | 🀄️ 🔗 | 124 |
| 129 | 求根节点到叶节点数字之和 | [✓] | 树 深度优先搜索 二叉树 | 🟠 | 🀄️ 🔗 | 76 |
| 124 | 二叉树中的最大路径和 | [✓] | 树 深度优先搜索 动态规划 1+ | 🔴 | 🀄️ 🔗 | 129 |
| 543 | 二叉树的直径 | [✓] | 树 深度优先搜索 二叉树 | 🟢 | 🀄️ 🔗 | 74 |
| 662 | 二叉树最大宽度 | [✓] | 树 深度优先搜索 广度优先搜索 1+ | 🟠 | 🀄️ 🔗 | 57 |
| 958 | 二叉树的完全性检验 | [✓] | 树 广度优先搜索 二叉树 | 🟠 | 🀄️ 🔗 | 42 |
| 572 | 另一棵树的子树 | [✓] | 树 深度优先搜索 二叉树 2+ | 🟢 | 🀄️ 🔗 | 28 |
| 100 | 相同的树 | [✓] | 树 深度优先搜索 广度优先搜索 1+ | 🟢 | 🀄️ 🔗 | 16 |
| 111 | 二叉树的最小深度 | [✓] | 树 深度优先搜索 广度优先搜索 1+ | 🟢 | 🀄️ 🔗 | 20 |
- 图的广度优先搜索
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 322 | 零钱兑换 | [✓] | 广度优先搜索 数组 动态规划 | 🟠 | 🀄️ 🔗 | 84 |
| 207 | 课程表 | [✓] | 深度优先搜索 广度优先搜索 图 1+ | 🟠 | 🀄️ 🔗 | 43 |
| 剑指 Offer 32-III | 从上到下打印二叉树 III | [✓] | 树 广度优先搜索 二叉树 | 🟠 | 🀄️ | 16 |
- 图的拓扑排序
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 210 | 课程表 II | [✓] | 深度优先搜索 广度优先搜索 图 1+ | 🟠 | 🀄️ 🔗 | 19 |
枚举算法
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 1 | 两数之和 | [✓] | 数组 哈希表 | 🟢 | 🀄️ 🔗 | 232 |
| 78 | 子集 | [✓] | 位运算 数组 回溯 | 🟠 | 🀄️ 🔗 | 85 |
递归算法
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 24 | 两两交换链表中的节点 | [✓] | 递归 链表 | 🟠 | 🀄️ 🔗 | 50 |
| 104 | 二叉树的最大深度 | [✓] | 树 深度优先搜索 广度优先搜索 1+ | 🟢 | 🀄️ 🔗 | 77 |
| 226 | 翻转二叉树 | [✓] | 树 深度优先搜索 广度优先搜索 1+ | 🟢 | 🀄️ 🔗 | 59 |
分治算法
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 169 | 多数元素 | [✓] | 数组 哈希表 分治 2+ | 🟢 | 🀄️ 🔗 | 61 |
| 14 | 最长公共前缀 | [✓] | 字典树 字符串 | 🟢 | 🀄️ 🔗 | 58 |
| 剑指 Offer 33 | 二叉搜索树的后序遍历序列 | [✓] | 栈 树 二叉搜索树 4+ | 🟠 | 🀄️ | 16 |
回溯算法
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 46 | 全排列 | [✓] | 数组 回溯 | 🟠 | 🀄️ 🔗 | 202 |
| 47 | 全排列 II | [✓] | 数组 回溯 | 🟠 | 🀄️ 🔗 | 40 |
| 37 | 解数独 | [✓] | 数组 哈希表 回溯 1+ | 🔴 | 🀄️ 🔗 | 18 |
| 22 | 括号生成 | [✓] | 字符串 动态规划 回溯 | 🟠 | 🀄️ 🔗 | 105 |
| 39 | 组合总和 | [✓] | 数组 回溯 | 🟠 | 🀄️ 🔗 | 68 |
| 40 | 组合总和 II | [✓] | 数组 回溯 | 🟠 | 🀄️ 🔗 | 35 |
| 93 | 复原 IP 地址 | [✓] | 字符串 回溯 | 🟠 | 🀄️ 🔗 | 114 |
| 79 | 单词搜索 | [✓] | 数组 字符串 回溯 1+ | 🟠 | 🀄️ 🔗 | 38 |
| 679 | 24 点游戏 | 数组 数学 回溯 | 🔴 | 🀄️ 🔗 | 21 |
贪心算法
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 122 | 买卖股票的最佳时机 II | [✓] | 贪心 数组 动态规划 | 🟠 | 🀄️ 🔗 | 56 |
| 55 | 跳跃游戏 | [✓] | 贪心 数组 动态规划 | 🟠 | 🀄️ 🔗 | 38 |
| 402 | 移掉 K 位数字 | [✓] | 栈 贪心 字符串 1+ | 🟠 | 🀄️ 🔗 | 44 |
| 135 | 分发糖果 | [✓] | 贪心 数组 | 🔴 | 🀄️ 🔗 | 29 |
| 134 | 加油站 | [✓] | 贪心 数组 | 🟠 | 🀄️ 🔗 | 20 |
| 670 | 最大交换 | [✓] | 贪心 数学 | 🟠 | 🀄️ 🔗 | 17 |
动态规划
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 70 | 爬楼梯 | [✓] | 记忆化搜索 数学 动态规划 | 🟢 | 🀄️ 🔗 | 109 |
| 509 | 斐波那契数 | [✓] | 递归 记忆化搜索 数学 1+ | 🟢 | 🀄️ 🔗 | 19 |
| 121 | 买卖股票的最佳时机 | [✓] | 数组 动态规划 | 🟢 | 🀄️ 🔗 | 211 |
| 518 | 零钱兑换 II | [✓] | 数组 动态规划 | 🟠 | 🀄️ 🔗 | 35 |
| 300 | 最长递增子序列 | [✓] | 数组 二分查找 动态规划 | 🟠 | 🀄️ 🔗 | 163 |
| 1143 | 最长公共子序列 | [✓] | 字符串 动态规划 | 🟠 | 🀄️ 🔗 | 120 |
| 718 | 最长重复子数组 | 数组 二分查找 动态规划 3+ | 🟠 | 🀄️ 🔗 | 60 | |
| 64 | 最小路径和 | [✓] | 数组 动态规划 矩阵 | 🟠 | 🀄️ 🔗 | 68 |
| 72 | 编辑距离 | [✓] | 字符串 动态规划 | 🟠 | 🀄️ 🔗 | 127 |
| 32 | 最长有效括号 | [✓] | 栈 字符串 动态规划 | 🔴 | 🀄️ 🔗 | 81 |
| 221 | 最大正方形 | [✓] | 数组 动态规划 矩阵 | 🟠 | 🀄️ 🔗 | 68 |
| 62 | 不同路径 | [✓] | 数学 动态规划 组合数学 | 🟠 | 🀄️ 🔗 | 55 |
| 63 | 不同路径 II | [✓] | 数组 动态规划 矩阵 | 🟠 | 🀄️ 🔗 | 18 |
| 152 | 乘积最大子数组 | [✓] | 数组 动态规划 | 🟠 | 🀄️ 🔗 | 55 |
| 198 | 打家劫舍 | [✓] | 数组 动态规划 | 🟠 | 🀄️ 🔗 | 51 |
| 213 | 打家劫舍 II | [✓] | 数组 动态规划 | 🟠 | 🀄️ 🔗 | 25 |
| 91 | 解码方法 | [✓] | 字符串 动态规划 | 🟠 | 🀄️ 🔗 | 28 |
| 10 | 正则表达式匹配 | [✓] | 递归 字符串 动态规划 | 🔴 | 🀄️ 🔗 | 26 |
| 678 | 有效的括号字符串 | [✓] | 栈 贪心 字符串 1+ | 🟠 | 🀄️ 🔗 | 21 |
| 45 | 跳跃游戏 II | [✓] | 贪心 数组 动态规划 | 🟠 | 🀄️ 🔗 | 31 |
| 673 | 最长递增子序列的个数 | [✓] | 树状数组 线段树 数组 1+ | 🟠 | 🀄️ 🔗 | 19 |
| 139 | 单词拆分 | [✓] | 字典树 记忆化搜索 数组 3+ | 🟠 | 🀄️ 🔗 | 52 |
| 44 | 通配符匹配 | [✓] | 贪心 递归 字符串 1+ | 🔴 | 🀄️ 🔗 | 19 |
| 120 | 三角形最小路径和 | [✓] | 数组 动态规划 | 🟠 | 🀄️ 🔗 | 23 |
| 96 | 不同的二叉搜索树 | [✓] | 树 二叉搜索树 数学 2+ | 🟠 | 🀄️ 🔗 | 24 |
| 887 | 鸡蛋掉落 | 数学 二分查找 动态规划 | 🔴 | 🀄️ 🔗 | 21 | |
| 97 | 交错字符串 | [✓] | 字符串 动态规划 | 🟠 | 🀄️ 🔗 | 17 |
| 516 | 最长回文子序列 | [✓] | 字符串 动态规划 | 🟠 | 🀄️ 🔗 | 17 |
| 329 | 矩阵中的最长递增路径 | [✓] | 深度优先搜索 广度优先搜索 图 5+ | 🔴 | 🀄️ 🔗 | 28 |
位运算
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 191 | 位1的个数 | [✓] | 位运算 分治 | 🟢 | 🀄️ 🔗 | 17 |
| 268 | 丢失的数字 | [✓] | 位运算 数组 哈希表 3+ | 🟢 | 🀄️ 🔗 | 16 |
排序算法
- 冒泡排序
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 283 | 移动零 | [✓] | 数组 双指针 | 🟢 | 🀄️ 🔗 | 49 |
- 插入排序
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 75 | 颜色分类 | [✓] | 数组 双指针 排序 | 🟠 | 🀄️ 🔗 | 33 |
- 归并排序
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 剑指 Offer 51 | 数组中的逆序对 | [✓] | 树状数组 线段树 数组 4+ | 🔴 | 🀄️ | 37 |
- 堆排序
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 912 | 排序数组 | 数组 分治 桶排序 5+ | 🟠 | 🀄️ 🔗 | 16 | |
| 215 | 数组中的第K个最大元素 | [✓] | 数组 分治 快速选择 2+ | 🟠 | 🀄️ 🔗 | 420 |
| 剑指 Offer 40 | 最小的k个数 | [✓] | 数组 分治 快速选择 2+ | 🟢 | 🀄️ | 36 |
- 基数排序
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 164 | 最大间距 | [✓] | 数组 桶排序 基数排序 1+ | 🟠 | 🀄️ 🔗 | 16 |
- 其他排序
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 136 | 只出现一次的数字 | [✓] | 位运算 数组 | 🟢 | 🀄️ 🔗 | 45 |
| 56 | 合并区间 | [✓] | 数组 排序 | 🟠 | 🀄️ 🔗 | 125 |
| 179 | 最大数 | [✓] | 贪心 数组 字符串 1+ | 🟠 | 🀄️ 🔗 | 51 |
| 384 | 打乱数组 | [✓] | 数组 数学 随机化 | 🟠 | 🀄️ 🔗 | 28 |
| 剑指 Offer 45 | 把数组排成最小的数 | [✓] | 贪心 字符串 排序 | 🟠 | 🀄️ | 18 |
- 链表排序
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 148 | 排序链表 | [✓] | 链表 双指针 分治 2+ | 🟠 | 🀄️ 🔗 | 111 |
| 21 | 合并两个有序链表 | [✓] | 递归 链表 | 🟢 | 🀄️ 🔗 | 242 |
二分查找
- 二分下标
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 704 | 二分查找 | [✓] | 数组 二分查找 | 🟢 | 🀄️ 🔗 | 120 |
| 34 | 在排序数组中查找元素的第一个和最后一个位置 | [✓] | 数组 二分查找 | 🟠 | 🀄️ 🔗 | 67 |
| 153 | 寻找旋转排序数组中的最小值 | [✓] | 数组 二分查找 | 🟠 | 🀄️ 🔗 | 49 |
| 154 | 寻找旋转排序数组中的最小值 II | [✓] | 数组 二分查找 | 🔴 | 🀄️ 🔗 | 16 |
| 33 | 搜索旋转排序数组 | [✓] | 数组 二分查找 | 🟠 | 🀄️ 🔗 | 220 |
| 162 | 寻找峰值 | [✓] | 数组 二分查找 | 🟠 | 🀄️ 🔗 | 60 |
| 4 | 寻找两个正序数组的中位数 | [✓] | 数组 二分查找 分治 | 🔴 | 🀄️ 🔗 | 117 |
| 74 | 搜索二维矩阵 | [✓] | 数组 二分查找 矩阵 | 🟠 | 🀄️ 🔗 | 35 |
| 240 | 搜索二维矩阵 II | [✓] | 数组 二分查找 分治 1+ | 🟠 | 🀄️ 🔗 | 61 |
- 二分答案
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 69 | x 的平方根 | [✓] | 数学 二分查找 | 🟢 | 🀄️ 🔗 | 109 |
| 287 | 寻找重复数 | [✓] | 位运算 数组 双指针 1+ | 🟠 | 🀄️ 🔗 | 25 |
| 50 | Pow(x, n) | [✓] | 递归 数学 | 🟠 | 🀄️ 🔗 | 37 |
| 400 | 第 N 位数字 | [✓] | 数学 二分查找 | 🟠 | 🀄️ 🔗 | 23 |
- 复杂的二分查找问题
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 209 | 长度最小的子数组 | [✓] | 数组 二分查找 前缀和 1+ | 🟠 | 🀄️ 🔗 | 49 |
| 349 | 两个数组的交集 | [✓] | 数组 哈希表 双指针 2+ | 🟢 | 🀄️ 🔗 | 22 |
双指针
- 对撞指针
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 611 | 有效三角形的个数 | [✓] | 贪心 数组 双指针 2+ | 🟠 | 🀄️ 🔗 | 20 |
| 16 | 最接近的三数之和 | [✓] | 数组 双指针 排序 | 🟠 | 🀄️ 🔗 | 29 |
| 11 | 盛最多水的容器 | [✓] | 贪心 数组 双指针 | 🟠 | 🀄️ 🔗 | 43 |
| 剑指 Offer 21 | 调整数组顺序使奇数位于偶数前面 | [✓] | 数组 双指针 排序 | 🟢 | 🀄️ | 30 |
| 443 | 压缩字符串 | [✓] | 双指针 字符串 | 🟠 | 🀄️ 🔗 | 18 |
- 快慢指针
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 26 | 删除有序数组中的重复项 | [✓] | 数组 双指针 | 🟢 | 🀄️ 🔗 | 35 |
| 88 | 合并两个有序数组 | [✓] | 数组 双指针 排序 | 🟢 | 🀄️ 🔗 | 204 |
- 分离双指针
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 415 | 字符串相加 | [✓] | 数学 字符串 模拟 | 🟢 | 🀄️ 🔗 | 166 |
- 链表双指针
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 141 | 环形链表 | [✓] | 哈希表 链表 双指针 | 🟢 | 🀄️ 🔗 | 210 |
| 142 | 环形链表 II | [✓] | 哈希表 链表 双指针 | 🟠 | 🀄️ 🔗 | 148 |
| 160 | 相交链表 | [✓] | 哈希表 链表 双指针 | 🟢 | 🀄️ 🔗 | 176 |
| 19 | 删除链表的倒数第 N 个结点 | [✓] | 链表 双指针 | 🟠 | 🀄️ 🔗 | 129 |
| 剑指 Offer 22 | 链表中倒数第k个节点 | [✓] | 链表 双指针 | 🟢 | 🀄️ | 95 |
| 143 | 重排链表 | [✓] | 栈 递归 链表 1+ | 🟠 | 🀄️ 🔗 | 148 |
| 2 | 两数相加 | [✓] | 递归 链表 数学 | 🟠 | 🀄️ 🔗 | 106 |
| 445 | 两数相加 II | [✓] | 栈 链表 数学 | 🟠 | 🀄️ 🔗 | 28 |
滑动窗口
- 固定长度窗口
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 239 | 滑动窗口最大值 | [✓] | 队列 数组 滑动窗口 2+ | 🔴 | 🀄️ 🔗 | 98 |
- 不定长度窗口
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 3 | 无重复字符的最长子串 | [✓] | 哈希表 字符串 滑动窗口 | 🟠 | 🀄️ 🔗 | 642 |
| 76 | 最小覆盖子串 | [✓] | 哈希表 字符串 滑动窗口 | 🔴 | 🀄️ 🔗 | 87 |
| 862 | 和至少为 K 的最短子数组 | [✓] | 队列 数组 二分查找 4+ | 🔴 | 🀄️ 🔗 | 16 |
| 1004 | 最大连续1的个数 III | [✓] | 数组 二分查找 前缀和 1+ | 🟠 | 🀄️ 🔗 | 22 |
补充
- 设计数据结构
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 146 | LRU 缓存 | [✓] | 设计 哈希表 链表 1+ | 🟠 | 🀄️ 🔗 | 525 |
| 460 | LFU 缓存 | [✓] | 设计 哈希表 链表 1+ | 🔴 | 🀄️ 🔗 | 45 |
- 数学
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 7 | 整数反转 | [✓] | 数学 | 🟠 | 🀄️ 🔗 | 37 |
| 9 | 回文数 | [✓] | 数学 | 🟢 | 🀄️ 🔗 | 27 |
| 剑指 Offer 62 | 圆圈中最后剩下的数字 | [✓] | 递归 数学 | 🟢 | 🀄️ | 30 |
| 168 | Excel 表列名称 | [✓] | 数学 字符串 | 🟢 | 🀄️ 🔗 | 20 |
- 模拟
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 8 | 字符串转换整数 (atoi) | [✓] | 字符串 | 🟠 | 🀄️ 🔗 | 106 |
| 165 | 比较版本号 | [✓] | 双指针 字符串 | 🟠 | 🀄️ 🔗 | 96 |
| 468 | 验证IP地址 | 字符串 | 🟠 | 🀄️ 🔗 | 48 | |
| 86 | 分隔链表 | [✓] | 链表 双指针 | 🟠 | 🀄️ 🔗 | 18 |
- 前缀和
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 560 | 和为 K 的子数组 | [✓] | 数组 哈希表 前缀和 | 🟠 | 🀄️ 🔗 | 49 |
- 思维锻炼
| 题号 | 标题 | 题解 | 标签 | 难度 | 力扣 | 频次 |
|---|---|---|---|---|---|---|
| 31 | 下一个排列 | [✓] | 数组 双指针 | 🟠 | 🀄️ 🔗 | 111 |
| 556 | 下一个更大元素 III | 数学 双指针 字符串 | 🟠 | 🀄️ 🔗 | 19 | |
| 470 | 用 Rand7() 实现 Rand10() | 数学 拒绝采样 概率与统计 1+ | 🟠 | 🀄️ 🔗 | 68 |
