-
「算法与数据结构」 基础知识的讲解教程,「LeetCode」650+ 道题目的详细解析。本项目易于理解,没有大跨度的思维跳跃,项目中使用部分图示、例子来帮助理解。
-
本教程先从基础的数据结构和算法开始讲解,再针对不同分类的数据结构和算法,进行具体题目的讲解分析。让读者可以通过「算法基础理论学习」和「编程实战学习」相结合的方式,彻底的掌握算法知识。
-
本教程采用 Python 作为编程语言,要求学习者已有基本 Python 程序设计的知识与经验。
欢迎右上角 「Star ⭐️ 」 和 「Fork」,这是对我最大的鼓励和支持。
- GitHub 地址:https://github.com/itcharge/LeetCode-Py
支持黑暗模式的在线电子书《算法通关手册》。
- 电子书地址:https://algo.itcharge.cn
我是一名 iOS / macOS 的开发程序员,另外也是北航软院的一名非全硕士(在读)。曾在大学期间学习过算法知识,并参加过 3 年的 ACM 比赛, 但水平有限,未能取得理想成绩。但是这 3 年的 ACM 经历,给我最大的收获是锻炼了自己的逻辑思维和解决实际问题的能力,这种能力为我今后的工作、学习打下了坚实的基础。
我从 2021 年 03 月 30 日开始每日在 LeetCode 刷题,到 2021 年 11 月 26 日已经刷了 700+ 道题目,并且完成了 650+ 道题解。努力向着 1000+、1500+、2000+ 道题前进。
在公众号 「程序员充电站」 里回复 "算法打卡",拉你进 LeetCode 算法打卡计划群一起组队打卡。
- 进群暗号:算法打卡
- 进群要求:少闲聊、多分享、改备注。
- 本教程采用 知识署名—非商业性使用—禁止演绎(BY-NC-ND)4.0 协议国际许可协议 进行许可。
- 本教程题解中的所有题目版权均归 LeetCode 和 力扣中国 所有。
- 数组基础知识
- 数组排序算法
- 二分查找
- 数组双指针
- 数组滑动窗口
- 字符串基础知识
单模式串匹配算法BF 算法BM 算法KMP 算法RK 算法Sunday 算法单模式串匹配题目
- 多模式串匹配
- 树基础知识
- 二叉树
- 二叉搜索树
- 线段树
- 树状数组
- 并查集
图论基础知识拓扑排序欧拉路径哈密顿路径生成树最小生成树次小生成树最小树形图
单源最短路多源最短路径K 短路径差分约束系统强连通分量双联通分量LCA二分图网络流
- 枚举算法
- 递归算法
- 回溯算法
- 贪心算法
- 分治算法
- 动态规划
- 位运算
| 题号 | 标题 | 题解 | 标签 | 难度 |
|---|---|---|---|---|
| 0001 | 两数之和 | Python | 数组、哈希表 | 简单 |
| 0002 | 两数相加 | Python | 递归、链表、数学 | 中等 |
| 0003 | 无重复字符的最长子串 | Python | 字符串、哈希表、双指针、字符串、滑动窗口 | 中等 |
| 0004 | 寻找两个正序数组的中位数 | Python | 数组、二分查找、分治算法 | 困难 |
| 0005 | 最长回文子串 | Python | 字符串、动态规划 | 中等 |
| 0007 | 整数反转 | Python | 数学 | 简单 |
| 0008 | 字符串转换整数 (atoi) | Python | 数学、字符串 | 中等 |
| 0009 | 回文数 | Python | 数学 | 简单 |
| 0011 | 盛最多水的容器 | Python | 贪心、数组、双指针 | 中等 |
| 0012 | 整数转罗马数字 | Python | 数学、字符串 | 中等 |
| 0013 | 罗马数字转整数 | Python | 数学、字符串 | 简单 |
| 0014 | 最长公共前缀 | Python | 字符串 | 简单 |
| 0015 | 三数之和 | Python | 数组、双指针 | 中等 |
| 0016 | 最接近的三数之和 | Python | 数组、双指针、排序 | 中等 |
| 0017 | 电话号码的字母组合 | Python | 深度优先搜索、递归、字符串、回溯算法 | 中等 |
| 0018 | 四数之和 | Python | 数组、哈希表、双指针 | 中等 |
| 0019 | 删除链表的倒数第 N 个结点 | Python | 链表、双指针 | 中等 |
| 0020 | 有效的括号 | Python | 栈、字符串 | 简单 |
| 0021 | 合并两个有序链表 | Python | 递归、链表 | 简单 |
| 0022 | 括号生成 | Python | 字符串、回溯算法 | 中等 |
| 0023 | 合并K个升序链表 | Python | 链表、分治、堆(优先队列)、归并排序 | 困难 |
| 0024 | 两两交换链表中的节点 | Python | 递归、链表 | 中等 |
| 0026 | 删除有序数组中的重复项 | Python | 数组、双指针 | 简单 |
| 0027 | 移除元素 | Python | 数组、双指针 | 简单 |
| 0028 | 实现 strStr() | Python | 字符串、双指针 | 简单 |
| 0029 | 两数相除 | Python | 数学、二分查找 | 中等 |
| 0033 | 搜索旋转排序数组 | Python | 数组、二分查找 | 中等 |
| 0034 | 在排序数组中查找元素的第一个和最后一个位置 | Python | 数组、二分查找 | 中等 |
| 0035 | 搜索插入位置 | Python | 数组、二分查找 | 简单 |
| 0036 | 有效的数独 | Python | 哈希表 | 中等 |
| 0037 | 解数独 | Python | 数组、回溯、矩阵 | 困难 |
| 0038 | 外观数列 | Python | 字符串 | 简单 |
| 0039 | 组合总和 | Python | 数组、回溯 | 中等 |
| 0040 | 组合总和 II | Python | 数组、回溯 | 中等 |
| 0042 | 接雨水 | Python | 栈、数组、双指针、动态规划、单调栈 | 困难 |
| 0043 | 字符串相乘 | Python | 数学、字符串、模拟 | 中等 |
| 0045 | 跳跃游戏 II | Python | 贪心、数组、动态规划 | 中等 |
| 0046 | 全排列 | Python | 回溯算法 | 中等 |
| 0047 | 全排列 II | Python | 数组、回溯 | 中等 |
| 0048 | 旋转图像 | Python | 数组 | 中等 |
| 0049 | 字母异位词分组 | Python | 字符串、哈希表 | 中等 |
| 0050 | Pow(x, n) | Python | 数学、二分查找 | 中等 |
| 0051 | N 皇后 | Python | 数组、回溯 | 困难 |
| 0053 | 最大子序和 | Python | 数组、分治算法、动态规划 | 简单 |
| 0054 | 螺旋矩阵 | Python | 数组 | 中等 |
| 0055 | 跳跃游戏 | Python | 贪心算法、数组、动态规划 | 中等 |
| 0056 | 合并区间 | Python | 数组、排序 | 中等 |
| 0058 | 最后一个单词的长度 | Python | 字符串 | 简单 |
| 0059 | 螺旋矩阵 II | Python | 数组、矩阵、模拟 | 中等 |
| 0061 | 旋转链表 | Python | 链表、双指针 | 中等 |
| 0062 | 不同路径 | Python | 数组、动态规划 | 中等 |
| 0063 | 不同路径 II | Python | 数组、动态规划、矩阵 | 中等 |
| 0066 | 加一 | Python | 数组 | 简单 |
| 0067 | 二进制求和 | Python | 数学、字符串、位运算 | 简单 |
| 0069 | x 的平方根 | Python | 数学、二分查找 | 简单 |
| 0070 | 爬楼梯 | Python | 动态规划 | 简单 |
| 0072 | 编辑距离 | Python | 字符串、动态规划 | 困难 |
| 0073 | 矩阵置零 | Python | 数组 | 中等 |
| 0075 | 颜色分类 | Python | 数组、排序、双指针 | 中等 |
| 0076 | 最小覆盖子串 | Python | 哈希表、字符串、滑动窗口 | 困难 |
| 0077 | 组合 | Python | 数组、回溯 | 中等 |
| 0078 | 子集 | Python | 位运算、数组、回溯算法 | 中等 |
| 0079 | 单词搜索 | Python | 数组、回溯算法 | 中等 |
| 0080 | 删除有序数组中的重复项 II | Python | 数组、双指针 | 中等 |
| 0081 | 搜索旋转排序数组 II | Python | 数组、二分查找 | 中等 |
| 0083 | 删除排序链表中的重复元素 | Python | 链表 | 简单 |
| 0084 | 柱状图中最大的矩形 | Python | 栈、数组、单调栈 | 困难 |
| 0088 | 合并两个有序数组 | Python | 数组、双指针 | 简单 |
| 0089 | 格雷编码 | Python | 位运算、数学、回溯 | 中等 |
| 0090 | 子集 II | Python | 位运算、数组、回溯 | 中等 |
| 0091 | 解码方法 | Python | 字符串、动态规划 | 中等 |
| 0093 | 复原 IP 地址 | Python | 字符串、回溯 | 中等 |
| 0094 | 二叉树的中序遍历 | Python | 栈、树、哈希表 | 简单 |
| 0095 | 不同的二叉搜索树 II | Python | 树、二叉搜索树、动态规划、回溯、二叉树 | 中等 |
| 0096 | 不同的二叉搜索树 | Python | 树、二叉搜索树、数学、动态规划、二叉树 | 中等 |
| 0098 | 验证二叉搜索树 | Python | 树、深度优先搜索、递归 | 中等 |
| 0100 | 相同的树 | Python | 树、深度优先搜索 | 简单 |
| 0101 | 对称二叉树 | Python | 树、深度优先搜索、广度优先搜索 | 简单 |
| 0102 | 二叉树的层序遍历 | Python | 树、广度优先搜索 | 中等 |
| 0103 | 二叉树的锯齿形层序遍历 | Python | 树、广度优先搜索、二叉树 | 中等 |
| 0104 | 二叉树的最大深度 | Python | 树、深度优先搜索、递归 | 简单 |
| 0105 | 从前序与中序遍历序列构造二叉树 | Python | 树、数组、哈希表、分治、二叉树 | 中等 |
| 0106 | 从中序与后序遍历序列构造二叉树 | Python | 树、数组、哈希表、分治、二叉树 | 中等 |
| 0107 | 二叉树的层序遍历 II | Python | 树、广度优先搜索 | 中等 |
| 0108 | 将有序数组转换为二叉搜索树 | Python | 树、深度优先搜索 | 简单 |
| 0110 | 平衡二叉树 | Python | 树、深度优先搜索、递归 | 简单 |
| 0111 | 二叉树的最小深度 | Python | 树、深度优先搜索、广度优先搜索 | 简单 |
| 0112 | 路径总和 | Python | 树、深度优先搜索 | 简单 |
| 0113 | 路径总和 II | Python | 树、深度优先搜索、回溯、二叉树 | 中等 |
| 0115 | 不同的子序列 | Python | 字符串、动态规划 | 困难 |
| 0116 | 填充每个节点的下一个右侧节点指针 | Python | 树、深度优先搜索、广度优先搜索 | 中等 |
| 0117 | 填充每个节点的下一个右侧节点指针 II | Python | 树、深度优先遍历 | 中等 |
| 0118 | 杨辉三角 | Python | 数组 | 简单 |
| 0119 | 杨辉三角 II | Python | 数组 | 简单 |
| 0121 | 买卖股票的最佳时机 | Python | 数组、动态规划 | 简单 |
| 0122 | 买卖股票的最佳时机 II | Python | 数组、贪心算法 | 简单 |
| 0123 | 买卖股票的最佳时机 III | Python | 数组、动态规划 | 困难 |
| 0124 | 二叉树中的最大路径和 | Python | 树、深度优先搜索、动态规划、二叉树 | 困难 |
| 0125 | 验证回文串 | Python | 字符串、双指针 | 简单 |
| 0127 | 单词接龙 | Python | 广度优先搜索、哈希表、字符串 | 困难 |
| 0128 | 最长连续序列 | Python | 并查集、数组、哈希表 | 中等 |
| 0129 | 求根节点到叶节点数字之和 | Python | 树、深度优先搜索、二叉树 | 中等 |
| 0130 | 被围绕的区域 | Python | 深度优先搜索、广度优先搜索、并查集、数组、矩阵 | 中等 |
| 0131 | 分割回文串 | Python | 字符串、动态规划、回溯 | 中等 |
| 0133 | 克隆图 | Python | 深度优先搜索、广度优先搜索、图 | 中等 |
| 0134 | 加油站 | Python | 贪心、数组 | 中等 |
| 0135 | 分发糖果 | Python | 贪心、数组 | 困难 |
| 0136 | 只出现一次的数字 | Python | 位运算、位运算 | 简单 |
| 0137 | 只出现一次的数字 II | Python | 位运算、数组 | 简单 |
| 0138 | 复制带随机指针的链表 | Python | 链表、哈希表 | 中等 |
| 0139 | 单词拆分 | Python | 字典树、记忆化搜索、哈希表、字符串、动态规划 | 中等 |
| 0140 | 单词拆分 II | Python | 字典树、记忆化搜索、哈希表、字符串、动态规划、回溯 | 困难 |
| 0141 | 环形链表 | Python | 链表、双指针 | 简单 |
| 0142 | 环形链表 II | Python | 链表、双指针 | 中等 |
| 0143 | 重排链表 | Python | 栈、递归、链表、双指针 | 中等 |
| 0144 | 二叉树的前序遍历 | Python | 栈、树 | 中等 |
| 0145 | 二叉树的后序遍历 | Python | 栈、树 | 简单 |
| 0147 | 对链表进行插入排序 | Python | 链表、排序 | 中等 |
| 0148 | 排序链表 | Python | 链表、双指针、分治、排序、归并排序 | 中等 |
| 0149 | 直线上最多的点数 | Python | 哈希表、数学 | 困难 |
| 0150 | 逆波兰表达式求值 | Python | 栈 | 中等 |
| 0151 | 翻转字符串里的单词 | Python | 双指针、字符串 | 中等 |
| 0152 | 乘积最大子数组 | Python | 数组、动态规划 | 中等 |
| 0153 | 寻找旋转排序数组中的最小值 | Python | 数组、二分查找 | 中等 |
| 0154 | 寻找旋转排序数组中的最小值 II | Python | 数组、二分查找 | 困难 |
| 0155 | 最小栈 | Python | 栈、设计 | 简单 |
| 0159 | 至多包含两个不同字符的最长子串 | Python | 哈希表、双指针、字符串、滑动窗口 | 中等 |
| 0160 | 相交链表 | Python | 链表、双指针 | 简单 |
| 0162 | 寻找峰值 | Python | 数组、二分查找 | 中等 |
| 0164 | 最大间距 | Python | 数组、桶排序、基数排序、排序 | 困难 |
| 0166 | 分数到小数 | Python | 哈希表、数学 | 中等 |
| 0167 | 两数之和 II - 输入有序数组 | Python | 数组、双指针、二分查找 | 简单 |
| 0168 | Excel表列名称 | Python | 数学 | 简单 |
| 0169 | 多数元素 | Python | 数组、哈希表 | 简单 |
| 0170 | 两数之和 III - 数据结构设计 | Python | 设计、哈希表 | 简单 |
| 0171 | Excel表列序号 | Python | 数组、字符串 | 简单 |
| 0172 | 阶乘后的零 | Python | 数学 | 简单 |
| 0173 | 二叉搜索树迭代器 | Python | 栈、树、设计 | 中等 |
| 0179 | 最大数 | Python | 贪心、字符串、排序 | 中等 |
| 0188 | 买卖股票的最佳时机 IV | Python | 数组、动态规划 | 困难 |
| 0189 | 旋转数组 | Python | 数组 | 中等 |
| 0190 | 颠倒二进制位 | Python | 位运算 | 简单 |
| 0191 | 位1的个数 | Python | 位运算 | 简单 |
| 0198 | 打家劫舍 | Python | 动态规划 | 中等 |
| 0199 | 二叉树的右视图 | Python | 树、深度优先搜索、广度优先搜索、递归、队列 | 中等 |
| 0200 | 岛屿数量 | Python | 搜索 | 中等 |
| 0202 | 快乐数 | Python | 哈希表、数学 | 简单 |
| 0203 | 移除链表元素 | Python | 链表 | 简单 |
| 0204 | 计数质数 | Python | 数学、哈希表 | 简单 |
| 0205 | 同构字符串 | Python | 哈希表 | 简单 |
| 0206 | 反转链表 | Python | 链表 | 简单 |
| 0207 | 课程表 | Python | 深度优先搜索、广度优先搜索、图、拓扑排序 | 中等 |
| 0208 | 实现 Trie (前缀树) | Python | 设计、字典树、哈希表、字符串 | 中等 |
| 0209 | 长度最小的子数组 | Python | 数组、双指针、二分查找 | 中等 |
| 0210 | 课程表 II | Python | 深度优先搜索、广度优先搜索、图、拓扑排序 | 中等 |
| 0211 | 添加与搜索单词 - 数据结构设计 | Python | 深度优先搜索、设计、字典树、字符串 | 中等 |
| 0212 | 单词搜索 II | Python | 字典树、数组、字符串、回溯、矩阵 | 困难 |
| 0213 | 打家劫舍 II | Python | 动态规划 | 中等 |
| 0215 | 数组中的第K个最大元素 | Python | 数组、堆排序 | 中等 |
| 0217 | 存在重复元素 | Python | 数组、哈希表 | 简单 |
| 0218 | 天际线问题 | Python | 树状数组、线段树、数组、分治、有序集合、扫描线、堆(优先队列) | 困难 |
| 0219 | 存在重复元素 II | Python | 数组、哈希表 | 简单 |
| 0220 | 存在重复元素 III | Python | 排序、有序集合、哈希表 | 中等 |
| 0222 | 完全二叉树的节点个数 | Python | 树、深度优先搜索、二分查找、二叉树 | 中等 |
| 0223 | 矩形面积 | Python | 数学 | 简单 |
| 0225 | 用队列实现栈 | Python | 栈、设计 | 简单 |
| 0226 | 翻转二叉树 | Python | 树、递归 | 简单 |
| 0227 | 基本计算器 II | Python | 栈、字符串 | 中等 |
| 0231 | 2的幂 | Python | 位运算、数学 | 简单 |
| 0232 | 用栈实现队列 | Python | 栈、设计 | 简单 |
| 0234 | 回文链表 | Python | 链表、双指针 | 简单 |
| 0235 | 二叉搜索树的最近公共祖先 | Python | 树 | 简单 |
| 0236 | 二叉树的最近公共祖先 | Python | 树 | 中等 |
| 0237 | 删除链表中的节点 | Python | 链表 | 简单 |
| 0238 | 除自身以外数组的乘积 | Python | 数组 | 中等 |
| 0239 | 滑动窗口最大值 | Python | 队列,数组、滑动窗口、单调队列、堆(优先队列) | 困难 |
| 0240 | 搜索二维矩阵 II | Python | 二分查找、分治算法 | 中等 |
| 0242 | 有效的字母异位词 | Python | 字符串、哈希表、排序 | 简单 |
| 0249 | 移位字符串分组 | Python | 哈希表、字符串 | 中等 |
| 0257 | 二叉树的所有路径 | Python | 树、深度优先搜索 | 简单 |
| 0258 | 各位相加 | Python | 数学 | 简单 |
| 0259 | 较小的三数之和 | Python | 数组、双指针、二分查找、排序 | 中等 |
| 0260 | 只出现一次的数字 III | Python | 位运算、数组 | 中等 |
| 0263 | 丑数 | Python | 数学 | 简单 |
| 0264 | 丑数 II | Python | 哈希表、数学、动态规划、堆(优先队列) | 中等 |
| 0268 | 丢失的数字 | Python | 位运算、数组、数学 | 简单 |
| 0270 | 最接近的二叉搜索树值 | Python | 树、二分查找 | 简单 |
| 0278 | 第一个错误的版本 | Python | 数组、二分查找 | 简单 |
| 0279 | 完全平方数 | Python | 广度优先搜索、数学、动态规划 | 中等 |
| 0283 | 移动零 | Python | 数组、双指针 | 简单 |
| 0285 | 二叉搜索树中的中序后继 | Python | 栈、树、深度优先搜索、二叉搜索树、二叉树 | 简单 |
| 0286 | 墙与门 | Python | 广度优先搜索 | 中等 |
| 0287 | 寻找重复数 | Python | 数组、双指针、二分查找 | 中等 |
| 0288 | 单词的唯一缩写 | Python | 设计、哈希表 | 中等 |
| 0289 | 生命游戏 | Python | 数组、矩阵、模拟 | 中等 |
| 0290 | 单词规律 | Python | 哈希表 | 简单 |
| 0292 | Nim 游戏 | Python | 数学 | 简单 |
| 0295 | 数据流的中位数 | Python | 设计、双指针、数据流、排序、堆(优先队列) | 困难 |
| 0297 | 二叉树的序列化与反序列化 | Python | 树、设计 | 困难 |
| 0300 | 最长递增子序列 | Python | 二分查找、动态规划 | 中等 |
| 0304 | 二维区域和检索 - 矩阵不可变 | Python | 设计、数组、矩阵、前缀和 | 中等 |
| 0309 | 最佳买卖股票时机含冷冻期 | Python | 数组、动态规划 | 中等 |
| 0315 | 计算右侧小于当前元素的个数 | Python | 树状数组、线段树、数组、二分查找、分治、有序集合、归并排序 | 困难 |
| 0318 | 最大单词长度乘积 | Python | 位运算、数组、字符串 | 中等 |
| 0322 | 零钱兑换 | Python | 动态规划 | 中等 |
| 0323 | 无向图中连通分量的数目 | Python | 深度优先搜索、广度优先搜索、并查集、图 | 中等 |
| 0324 | 摆动排序 II | Python | 数组、分治、快速选择、排序 | 中等 |
| 0326 | 3 的幂 | Python | 数学 | 简单 |
| 0328 | 奇偶链表 | Python | 链表 | 中等 |
| 0329 | 矩阵中的最长递增路径 | Python | 深度优先搜索、广度优先搜索、图、拓扑排序、记忆化搜索、动态规划 | 困难 |
| 0334 | 递增的三元子序列 | Python | 贪心、数组 | 中等 |
| 0336 | 回文对 | Python | 字典树、数组、哈希表、字符串 | 困难 |
| 0337 | 打家劫舍 III | Python | 树、深度优先搜索、动态规划、二叉树 | 中等 |
| 0338 | 比特位计数 | Python | 位运算、动态规划 | 简单 |
| 0340 | 至多包含 K 个不同字符的最长子串 | Python | 中等 | 哈希表、字符串、滑动窗口 |
| 0341 | 扁平化嵌套列表迭代器 | Python | 栈、树、深度优先搜索、设计、队列、迭代器 | 中等 |
| 0342 | 4的幂 | Python | 位运算 | 简单 |
| 0343 | 整数拆分 | Python | 数学、动态规划 | 中等 |
| 0344 | 反转字符串 | Python | 字符串 | 简单 |
| 0345 | 反转字符串中的元音字母 | Python | 字符串 | 简单 |
| 0346 | 数据流中的移动平均值 | Python | 设计、队列、数组、数据流 | 简单 |
| 0347 | 前 K 个高频元素 | Python | 堆、哈希表 | 中等 |
| 0349 | 两个数组的交集 | Python | 数组、哈希表 | 简单 |
| 0350 | 两个数组的交集 II | Python | 数组、哈希表 | 简单 |
| 0354 | 俄罗斯套娃信封问题 | Python | 动态规划、二分查找 | 困难 |
| 0359 | 日志速率限制器 | Python | 设计、哈希表 | 简单 |
| 0360 | 有序转化数组 | Python | 数组、数学、双指针、排序 | 中等 |
| 0367 | 有效的完全平方数 | Python | 数学、二分查找 | 简单 |
| 0371 | 两整数之和 | Python | 位运算 | 中等 |
| 0374 | 猜数字大小 | Python | 二分查找 | 简单 |
| 0376 | 摆动序列 | Python | 贪心、数组、动态规划 | 中等 |
| 0377 | 组合总和 Ⅳ | Python | 数组、动态规划 | 中等 |
| 0378 | 有序矩阵中第 K 小的元素 | Python | 数组、二分查找、矩阵、排序、堆(优先队列) | 中等 |
| 0380 | 常数时间插入、删除和获取随机元素 | Python | 数组、哈希表 | 中等 |
| 0383 | 赎金信 | Python | 哈希表、字符串、计数 | 简单 |
| 0386 | 字典序排数 | Python | 深度优先搜索、字典树 | 中等 |
| 0387 | 字符串中的第一个唯一字符 | Python | 字符串、哈希表 | 简单 |
| 0389 | 找不同 | Python | 位运算、哈希表 | 简单 |
| 0392 | 判断子序列 | Python | 双指针、字符串、动态规划 | 简单 |
| 0394 | 字符串解码 | Python | 栈、深度优先搜索 | 中等 |
| 0395 | 至少有 K 个重复字符的最长子串 | Python | 哈希表、字符串、分治、滑动窗口 | 中等 |
| 0399 | 除法求值 | Python | 深度优先搜索、广度优先搜索、并查集、图、数组、最短路 | 中等 |
| 0400 | 第 N 位数字 | Python | 数学、二分查找 | 中等 |
| 0404 | 左叶子之和 | Python | 树 | 简单 |
| 0405 | 数字转换为十六进制数 | Python | 位运算、数学 | 简单 |
| 0406 | 根据身高重建队列 | Python | 贪心、数组、排序 | 中等 |
| 0409 | 最长回文串 | Python | 贪心、哈希表、字符串 | 简单 |
| 0410 | 分割数组的最大值 | Python | 二分查找、动态规划 | 困难 |
| 0412 | Fizz Buzz | Python | 简单 | |
| 0415 | 字符串相加 | Python | 字符串、大数加法 | 简单 |
| 0416 | 分割等和子集 | Python | 数组、动态规划 | 中等 |
| 0417 | 太平洋大西洋水流问题 | Python | 深度优先搜索、广度优先搜索、数组、矩阵 | 中等 |
| 0421 | 数组中两个数的最大异或值 | Python | 位运算、字典树、数组、哈希表 | 中等 |
| 0424 | 替换后的最长重复字符 | Python | 双指针、滑动窗口 | 中等 |
| 0425 | 单词方块 | Python | 字典树、数组、字符串、回溯 | 困难 |
| 0426 | 将二叉搜索树转化为排序的双向链表 | Python | 栈、树、深度优先搜索、二叉搜索树、链表、二叉树、双向链表 | 中等 |
| 0428 | 序列化和反序列化 N 叉树 | Python | 树、深度优先搜索、广度优先搜索、字符串 | 困难 |
| 0429 | N 叉树的层序遍历 | Python | 树、广度优先搜索 | 中等 |
| 0430 | 扁平化多级双向链表 | Python | 链表 | 中等 |
| 0435 | 无重叠区间 | Python | 贪心、数组、动态规划、排序 | 中等 |
| 0437 | 路径总和 III | Python | 树、深度优先搜索、二叉树 | 中等 |
| 0438 | 找到字符串中所有字母异位词 | Python | 哈希表、字符串、滑动窗口 | 中等 |
| 0445 | 两数相加 II | Python | 栈、链表、数学 | 中等 |
| 0447 | 回旋镖的数量 | Python | 哈希表、数学 | 中等 |
| 0450 | 删除二叉搜索树中的节点 | Python | 树 | 中等 |
| 0451 | 根据字符出现频率排序 | Python | 哈希表、字符串、桶排序、计数、排序、堆(优先队列) | 中等 |
| 0452 | 用最少数量的箭引爆气球 | Python | 贪心、数组、排序 | 中等 |
| 0454 | 四数相加 II | Python | 哈希表 | 中等 |
| 0455 | 分发饼干 | Python | 贪心、数组、排序 | 简单 |
| 0461 | 汉明距离 | Python | 位运算 | 简单 |
| 0467 | 环绕字符串中唯一的子字符串 | Python | 字符串、动态规划 | 中等 |
| 0473 | 火柴拼正方形 | Python | 位运算、数组、动态规划、回溯、状态压缩 | 中等 |
| 0474 | 一和零 | Python | 数组、字符串、动态规划 | 中等 |
| 0480 | 滑动窗口中位数 | Python | 数组、哈希表、滑动窗口、堆(优先队列) | 困难 |
| 0485 | 最大连续 1 的个数 | Python | 数组 | 简单 |
| 0487 | 最大连续1的个数 II | Python | 数组、动态规划、滑动窗口 | 中等 |
| 0491 | 递增子序列 | Python | 位运算、数组、哈希、回溯 | 中等 |
| 0494 | 目标和 | Python | 深度优先搜索、动态规划 | 中等 |
| 0496 | 下一个更大元素 I | Python | 栈、数组、哈希表、单调栈 | 简单 |
| 0498 | 对角线遍历 | Python | 数组、矩阵、模拟 | 中等 |
| 0501 | 二叉搜索树中的众数 | Python | 树、深度优先搜索、二叉搜索树、二叉树 | 简单 |
| 0504 | 七进制数 | Python | 数学 | 简单 |
| 0506 | 相对名次 | Python | 数组、排序、堆(优先队列) | 简单 |
| 0509 | 斐波那契数 | Python | 数组 | 简单 |
| 0513 | 找树左下角的值 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 中等 |
| 0515 | 在每个树行中找最大值 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 中等 |
| 0516 | 最长回文子序列 | Python | 字符串、动态规划 | 中等 |
| 0518 | 零钱兑换 II | Python | 数组、动态规划 | 中等 |
| 0525 | 连续数组 | Python | 数组、哈希表、前缀和 | 中等 |
| 0530 | 二叉搜索树的最小绝对差 | Python | 树、深度优先搜索、广度优先搜索、二叉搜索树、二叉树 | 简单 |
| 0538 | 把二叉搜索树转换为累加树 | Python | 树、深度优先搜索、二叉搜索树、二叉树 | 中等 |
| 0539 | 最小时间差 | Python | 数组、数学、字符串、排序 | 中等 |
| 0542 | 01 矩阵 | Python | 深度优先搜索、广度优先搜索 | 中等 |
| 0543 | 二叉树的直径 | Python | 二叉树 | 简单 |
| 0547 | 省份数量 | Python | 深度优先搜索、广度优先搜索、并查集、图 | 中等 |
| 0557 | 反转字符串中的单词 III | Python | 字符串 | 简单 |
| 0560 | 和为 K 的子数组 | Python | 数组、哈希表、前缀和 | 中等 |
| 0561 | 数组拆分 I | Python | 数组 | 简单 |
| 0567 | 字符串的排列 | Python | 哈希表、双指针、字符串、滑动窗口 | 中等 |
| 0575 | 分糖果 | Python | 数组、哈希表 | 简单 |
| 0583 | 两个字符串的删除操作 | Python | 字符串、动态规划 | 中等 |
| 0589 | N 叉树的前序遍历 | Python | 栈、树、深度优先搜索 | 简单 |
| 0590 | N 叉树的后序遍历 | Python | 栈、树、深度优先搜索 | 简单 |
| 0599 | 两个列表的最小索引总和 | Python | 哈希表 | 简单 |
| 0611 | 有效三角形的个数 | Python | 贪心、数组、双指针、二分查找、排序 | 中等 |
| 0616 | 给字符串添加加粗标签 | Python | 字典树、数组、哈希表、字符串、字符串匹配 | 中等 |
| 0617 | 合并二叉树 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 简单 |
| 0621 | 任务调度器 | Python | 贪心算法、队列、数组 | 中等 |
| 0622 | 设计循环队列 | Python | 队列 | 中等 |
| 0633 | 平方数之和 | Python | 双指针 | 中等 |
| 0642 | 设计搜索自动补全系统 | Python | 设计、字典树、字符串、数据流 | 困难 |
| 0643 | 子数组最大平均数 I | Python | 数组、滑动窗口 | 简单 |
| 0647 | 回文子串 | Python | 字符串、动态规划 | 中等 |
| 0648 | 单词替换 | Python | 字典树、数组、哈希、字符串 | 中等 |
| 0652 | 寻找重复的子树 | Python | 树、哈希表 | 中等 |
| 0653 | 两数之和 IV - 输入 BST | Python | 树、深度优先搜索、广度优先搜索、二叉搜索树、哈希表、双指针、二叉树 | 简单 |
| 0654 | 最大二叉树 | Python | 栈、树、数组、分治、二叉树、单调栈 | 中等 |
| 0658 | 找到 K 个最接近的元素 | Python | 二分查找 | 中等 |
| 0665 | 非递减数列 | Python | 数组 | 简单 |
| 0669 | 修剪二叉搜索树 | Python | 树、深度优先搜索、二叉搜索树、二叉树 | 中等 |
| 0673 | 最长递增子序列的个数 | Python | 动态规划 | 中等 |
| 0674 | 最长连续递增序列 | Python | 数组 | 简单 |
| 0676 | 实现一个魔法字典 | Python | 设计、字典树、哈希表、字符串 | 中等 |
| 0677 | 键值映射 | Python | 设计、字典树、哈希表、字符串 | 中等 |
| 0680 | 验证回文字符串 Ⅱ | Python | 贪心、双指针、字符串 | 简单 |
| 0683 | K 个关闭的灯泡 | Python | 树状数组、数组、有序集合、滑动窗口 | 苦难 |
| 0684 | 冗余连接 | Python | 深度优先搜索、广度优先搜索、并查集、图 | 中等 |
| 0690 | 员工的重要性 | Python | 深度优先搜索、广度优先搜索、哈希表 | 简单 |
| 0695 | 岛屿的最大面积 | Python | 搜索 | 中等 |
| 0700 | 二叉搜索树中的搜索 | Python | 数 | 简单 |
| 0701 | 二叉搜索树中的插入操作 | Python | 树 | 中等 |
| 0702 | 搜索长度未知的有序数组 | Python | 二分查找 | 中等 |
| 0703 | 数据流中的第 K 大元素 | Python | 树、设计、二叉搜索树、二叉树、数据流、堆(优先队列) | 简单 |
| 0704 | 二分查找 | Python | 二分查找 | 简单 |
| 0705 | 设计哈希集合 | Python | 哈希表 | 简单 |
| 0706 | 设计哈希映射 | Python | 哈希表 | 简单 |
| 0707 | 设计链表 | Python | 链表 | 中等 |
| 0708 | 循环有序列表的插入 | Python | 链表 | 中等 |
| 0713 | 乘积小于K的子数组 | Python | 数组、滑动窗口 | 中等 |
| 0714 | 买卖股票的最佳时机含手续费 | Python | 贪心、数组、动态规划 | 中等 |
| 0718 | 最长重复子数组 | Python | 数组、二分查找、动态规划、滑动窗口、哈希函数、滚动哈希 | 中等 |
| 0719 | 找出第 k 小的距离对 | Python | 堆、数组、二分查找 | 困难 |
| 0720 | 词典中最长的单词 | Python | 字典树、数组、哈希表、字符串、排序 | 简单 |
| 0724 | 寻找数组的中心下标 | Python | 数组 | 简单 |
| 0727 | 最小窗口子序列 | Python | 字符串、动态规划、滑动窗口 | 困难 |
| 0733 | 图像渲染 | Python | 深度优先搜索 | 简单 |
| 0735 | 行星碰撞 | Python | 栈、数组 | 中等 |
| 0738 | 单调递增的数字 | Python | 贪心、数学 | 中等 |
| 0739 | 每日温度 | Python | 栈、哈希表 | 中等 |
| 0744 | 寻找比目标字母大的最小字母 | Python | 二分查找 | 简单 |
| 0746 | 使用最小花费爬楼梯 | Python | 数组、动态规划 | 简单 |
| 0752 | 打开转盘锁 | Python | 广度优先搜索 | 中等 |
| 0758 | 字符串中的加粗单词 | Python | 字典树、数组、哈希表、字符串、字符串匹配 | 中等 |
| 0763 | 划分字母区间 | Python | 贪心、哈希表、双指针、字符串 | 中等 |
| 0765 | 情侣牵手 | Python | 贪心、深度优先搜索、广度优先搜索、并查集、图 | 困难 |
| 0771 | 宝石与石头 | Python | 哈希表、字符串 | 简单 |
| 0778 | 水位上升的泳池中游泳 | Python | 深度优先搜索、广度优先搜索、并查集、数组、二分查找、矩阵、堆(优先队列) | 困难 |
| 0779 | 第K个语法符号 | Python | 递归 | 中等 |
| 0784 | 字母大小写全排列 | Python | 位运算、字符串、回溯 | 中等 |
| 0785 | 判断二分图 | Python | 深度优先搜索、广度优先搜索、并查集、图 | 中等 |
| 0795 | 区间子数组个数 | Python | 数组、双指针 | 中等 |
| 0797 | 所有可能的路径 | Python | 深度优先搜索、广度优先搜索、图、回溯 | 中等 |
| 0801 | 使序列递增的最小交换次数 | Python | 动态规划 | 中等 |
| 0802 | 找到最终的安全状态 | Python | 深度优先搜索、广度优先搜索、图、拓扑排序 | 中等 |
| 0803 | 打砖块 | Python | 并查集、数组、矩阵 | 困难 |
| 0814 | 二叉树剪枝 | Python | 树、深度优先搜索、二叉树 | 中等 |
| 0820 | 单词的压缩编码 | Python | 字典树、数组、哈希表、字符串 | 中等 |
| 0832 | 翻转图像 | Python | 数组、双指针、矩阵、模拟 | 简单 |
| 0836 | 矩形重叠 | Python | 数学 | 简单 |
| 0841 | 钥匙和房间 | Python | 深度优先搜索、图 | 中等 |
| 0844 | 比较含退格的字符串 | Python | 栈、双指针、字符串、模拟 | 简单 |
| 0845 | 数组中的最长山脉 | Python | 数组、双指针、动态规划、枚举 | 中等 |
| 0852 | 山脉数组的峰顶索引 | Python | 数组、二分查找 | 简单 |
| 0860 | 柠檬水找零 | Python | 贪心、数组 | 简单 |
| 0867 | 转置矩阵 | Python | 数组 | 简单 |
| 0872 | 叶子相似的树 | Python | 树、深度优先搜索、二叉树 | 简单 |
| 0873 | 最长的斐波那契子序列的长度 | Python | 数组、哈希表、动态规划 | 中等 |
| 0875 | 爱吃香蕉的珂珂 | Python | 数组、二分查找 | 中等 |
| 0876 | 链表的中间结点 | Python | 链表、指针 | 简单 |
| 0877 | 石子游戏 | Python | 数组、数学、动态规划、博弈 | 中等 |
| 0881 | 救生艇 | Python | 贪心、数组、双指针、排序 | 中等 |
| 0886 | 可能的二分法 | Python | 深度优先搜索、广度优先搜索、并查集、图 | 中等 |
| 0897 | 递增顺序搜索树 | Python | 栈、树、深度优先搜索、二叉搜索树、二叉树 | 简单 |
| 0904 | 水果成篮 | Python | 数组、哈希表、滑动窗口 | 中等 |
| 0908 | 最小差值 I | Python | 数组、数学 | 简单 |
| 0912 | 排序数组 | Python | 数组、分治、桶排序、计数排序、基数排序、排序、堆(优先队列) | 中等 |
| 0918 | 环形子数组的最大和 | Python | 数组、动态规划 | 中等 |
| 0919 | 完全二叉树插入器 | Python | 树、广度优先搜索、设计、二叉树 | 中等 |
| 0925 | 长按键入 | Python | 双指针、字符串 | 简单 |
| 0933 | 最近的请求次数 | Python | 设计、队列、数据流 | 简单 |
| 0938 | 二叉搜索树的范围和 | Python | 二叉树 | 简单 |
| 0946 | 验证栈序列 | Python | 栈、数组、模拟 | 中等 |
| 0947 | 移除最多的同行或同列石头 | Python | 深度优先搜索、并查集、图 | 中等 |
| 0953 | 验证外星语词典 | Python | 数组、哈希表、字符串 | 简单 |
| 0959 | 由斜杠划分区域 | Python | 深度优先搜索、广度优先搜索、并查集、图 | 中等 |
| 0968 | 监控二叉树 | Python | 树、深度优先搜索、动态规划、二叉树 | 困难 |
| 0974 | 和可被 K 整除的子数组 | Python | 数组、哈希表、前缀和 | 中等 |
| 0977 | 有序数组的平方 | Python | 数组、双指针、排序 | 简单 |
| 0978 | 最长湍流子数组 | Python | 数组、动态规划、滑动窗口 | 中等 |
| 0990 | 等式方程的可满足性 | Python | 并查集、图、数组、字符串 | 中等 |
| 0992 | K 个不同整数的子数组 | Python | 数组、哈希表、计数、滑动窗口 | 困难 |
| 0993 | 二叉树的堂兄弟节点 | Python | 树、广度优先搜索 | 简单 |
| 0995 | K 连续位的最小翻转次数 | Python | 位运算、数组、前缀和、滑动窗口 | 困难 |
| 1004 | 最大连续1的个数 III | Python | 双指针、滑动窗口 | 中等 |
| 1005 | K 次取反后最大化的数组和 | Python | 贪心、数组、排序 | 简单 |
| 1008 | 前序遍历构造二叉搜索树 | Python | 栈、树、二叉搜索树、数组、二叉树、单调栈 | 中等 |
| 1011 | 在 D 天内送达包裹的能力 | Python | 数组、二分查找 | 中等 |
| 1014 | 最佳观光组合 | Python | 数组、动态规划 | 中等 |
| 1020 | 飞地的数量 | Python | 深度优先搜索、广度优先搜索、并查集、数组、矩阵 | 中等 |
| 1023 | 驼峰式匹配 | Python | 字典树、双指针、字符串、字符串匹配 | 中等 |
| 1025 | 除数博弈 | Python | 脑筋急转弯、数学、动态规划、博弈 | 简单 |
| 1028 | 从先序遍历还原二叉树 | Python | 树、深度优先搜索、字符串、二叉树 | 困难 |
| 1034 | 边框着色 | Python | 深度优先搜索、广度优先搜索、数组、矩阵 | 中等 |
| 1035 | 不相交的线 | Python | 数组、动态规划 | 中等 |
| 1038 | 把二叉搜索树转换为累加树 | Python | 树、深度优先搜索、二叉搜索树、二叉树 | 中等 |
| 1047 | 删除字符串中的所有相邻重复项 | Python | 字符串、栈 | 简单 |
| 1049 | 最后一块石头的重量 II | Python | 数组、动态规划 | 中等 |
| 1052 | 爱生气的书店老板 | Python | 数组、滑动窗口 | 中等 |
| 1065 | 字符串的索引对 | Python | 字典树、数组、字符串、排序 | 简单 |
| 1079 | 活字印刷 | Python | 字符串、回溯 | 中等 |
| 1091 | 二进制矩阵中的最短路径 | Python | 广度优先搜索、数组、矩阵 | 中等 |
| 1095 | 山脉数组中查找目标值 | Python | 数组、二分查找、交互 | 困难 |
| 1099 | 小于 K 的两数之和 | Python | 数组、双指针、二分查找、排序 | 简单 |
| 1100 | 长度为 K 的无重复字符子串 | Python | 哈希表、字符串、滑动窗口 | 中等 |
| 1122 | 数组的相对排序 | Python | 数组、哈希表、计数排序、排序 | 简单 |
| 1136 | 平行课程 | Python | 图、拓扑排序 | 中等 |
| 1137 | 第 N 个泰波那契数 | Python | 记忆化搜索、数学、动态规划 | 简单 |
| 1143 | 最长公共子序列 | Python | 字符串、动态规划 | 中等 |
| 1151 | 最少交换次数来组合所有的 1 | Python | 数组、滑动窗口 | 中等 |
| 1176 | 健身计划评估 | Python | 数组、滑动窗口 | 简单 |
| 1202 | 交换字符串中的元素 | Python | 深度优先搜索、广度优先搜索、并查集、哈希表、字符串 | 中等 |
| 1208 | 尽可能使字符串相等 | Python | 字符串、二分查找、前缀和、滑动窗口 | 中等 |
| 1227 | 飞机座位分配概率 | Python | 数学、动态规划 | 中等 |
| 1229 | 安排会议日程 | Python | 数组、双指针、排序 | 中等 |
| 1232 | 缀点成线 | Python | 几何、数组、数学 | 简单 |
| 1254 | 统计封闭岛屿的数目 | Python | 深度优先搜索、广度优先搜索、并查集、数组、矩阵 | 中等 |
| 1268 | 搜索推荐系统 | Python | 字典树、数组、字符串 | 中等 |
| 1300 | 转变数组后最接近目标值的数组和 | Python | 数组、二分查找、排序 | 中等 |
| 1319 | 连通网络的操作次数 | Python | 深度优先搜索、广度优先搜索、并查集、图 | 中等 |
| 1343 | 大小为 K 且平均值大于等于阈值的子数组数目 | Python | 数组、滑动窗口 | 中等 |
| 1358 | 包含所有三种字符的子字符串数目 | Python | 哈希表、字符串、滑动数组 | 中等 |
| 1423 | 可获得的最大点数 | Python | 数组、前缀和、滑动窗口 | 中等 |
| 1438 | 绝对差不超过限制的最长连续子数组 | Python | 队列、数组、有序集合、滑动窗口、单调队列、堆(优先队列) | 中等 |
| 1446 | 连续字符 | Python | 字符串 | 简单 |
| 1456 | 定长子串中元音的最大数目 | Python | 字符串、滑动窗口 | 中等 |
| 1480 | 一维数组的动态和 | Python | 数组 | 简单 |
| 1482 | 制作 m 束花所需的最少天数 | Python | 数组、二分查找 | 中等 |
| 1486 | 数组异或操作 | Python | 位运算、数组 | 简单 |
| 1493 | 删掉一个元素以后全为 1 的最长子数组 | Python | 数组、动态规划、滑动窗口 | 中等 |
| 1561 | 你可以获得的最大硬币数目 | Python | 贪心、数组、数学、博弈、排序 | 中等 |
| 1567 | 乘积为正数的最长子数组长度 | Python | 贪心、数组、动态规划 | 中等 |
| 1593 | 拆分字符串使唯一子字符串的数目最大 | Python | 哈希表、字符串、回溯 | 中等 |
| 1603 | 设计停车系统 | Python | 设计、计数、模拟 | 简单 |
| 1631 | 最小体力消耗路径 | Python | 深度优先搜索、广度优先搜索、并查集、数组、二分查找、矩阵、堆(优先队列) | 中等 |
| 1658 | 将 x 减到 0 的最小操作数 | Python | 数组、哈希表、二分查找、前缀和、滑动窗口 | 中等 |
| 1695 | 删除子数组的最大得分 | Python | 数组、哈希表、滑动窗口 | 中等 |
| 1698 | 字符串的不同子字符串个数 | Python | 字典树、字符串、后缀数组、哈希函数、滚动哈希 | 中等 |
| 1720 | 解码异或后的数组 | Python | 位运算 | 简单 |
| 1858 | 包含所有前缀的最长单词 | Python | 深度优先搜索、字典树 | 中等 |
| 1929 | 数组串联 | Python | 数组 | 简单 |
| 2011 | 执行操作后的变量值 | Python | 数组、字符串、模拟 | 简单 |
| 剑指 Offer 03 | 数组中重复的数字 | Python | 数组、哈希表、排序 | 简单 |
| 剑指 Offer 04 | 二维数组中的查找 | Python | 数组、二分查找、分治、矩阵 | 中等 |
| 剑指 Offer 05 | 替换空格 | Python | 字符串 | 简单 |
| 剑指 Offer 06 | 从尾到头打印链表 | Python | 栈、递归、链表、双指针 | 简单 |
| 剑指 Offer 07 | 重建二叉树 | Python | 树、数组、哈希表、分治、二叉树 | 中等 |
| 剑指 Offer 09 | 用两个栈实现队列 | Python | 栈、设计、队列 | 简单 |
| 剑指 Offer 10 - I | 斐波那契数列 | Python | 记忆化搜索、数学、动态规划 | 简单 |
| 剑指 Offer 10 - II | 青蛙跳台阶问题 | Python | 记忆化搜索、数学、动态规划 | 简单 |
| 剑指 Offer 11 | 旋转数组的最小数字 | Python | 数组、二分查找 | 简单 |
| 剑指 Offer 12 | 矩阵中的路径 | Python | 数组、回溯、矩阵 | 中等 |
| 剑指 Offer 13 | 机器人的运动范围 | Python | 深度优先搜索、广度优先搜索、动态规划 | 中等 |
| 剑指 Offer 14 - I | 剪绳子 | Python | 数学、动态规划 | 中等 |
| 剑指 Offer 15 | 二进制中1的个数 | Python | 位运算 | 简单 |
| 剑指 Offer 16 | 数值的整数次方 | Python | 递归、数学 | 中等 |
| 剑指 Offer 17 | 打印从1到最大的n位数 | Python | 数组、数学 | 简单 |
| 剑指 Offer 18 | 删除链表的节点 | Python | 链表 | 简单 |
| 剑指 Offer 21 | 调整数组顺序使奇数位于偶数前面 | Python | 数组、双指针、排序 | 简单 |
| 剑指 Offer 22 | 链表中倒数第k个节点 | Python | 链表、双指针 | 简单 |
| 剑指 Offer 24 | 反转链表 | Python | 递归、链表 | 简单 |
| 剑指 Offer 25 | 合并两个排序的链表 | Python | 递归、链表 | 简单 |
| 剑指 Offer 26 | 树的子结构 | Python | 树、深度优先搜索、二叉树 | 中等 |
| 剑指 Offer 27 | 二叉树的镜像 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 简单 |
| 剑指 Offer 28 | 对称的二叉树 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 简单 |
| 剑指 Offer 29 | 顺时针打印矩阵 | Python | 数组、矩阵、模拟 | 简单 |
| 剑指 Offer 30 | 包含min函数的栈 | Python | 栈、设计 | 简单 |
| 剑指 Offer 31 | 栈的压入、弹出序列 | Python | 栈、数组、模拟 | 中等 |
| 剑指 Offer 32 - I | 从上到下打印二叉树 | Python | 树、广度优先搜索、二叉树 | 中等 |
| 剑指 Offer 32 - II | 从上到下打印二叉树 II | Python | 树、广度优先搜索、二叉树 | 简单 |
| 剑指 Offer 32 - III | 从上到下打印二叉树 III | Python | 树、广度优先搜索、二叉树 | 中等 |
| 剑指 Offer 33 | 二叉搜索树的后序遍历序列 | Python | 栈、树、二叉搜索树、递归、二叉树、单调栈 | 中等 |
| 剑指 Offer 34 | 二叉树中和为某一值的路径 | Python | 树、深度优先搜索、回溯、二叉树 | 中等 |
| 剑指 Offer 35 | 复杂链表的复制 | Python | 哈希表、链表 | 中等 |
| 剑指 Offer 36 | 二叉搜索树与双向链表 | Python | 栈、树、深度优先搜索、二叉搜索树、链表、二叉树、双向链表 | 中等 |
| 剑指 Offer 37 | 序列化二叉树 | Python | 树、深度优先搜索、广度优先搜索、设计、字符串、二叉树 | 困难 |
| 剑指 Offer 38 | 字符串的排列 | Python | 字符串、回溯 | 中等 |
| 剑指 Offer 39 | 数组中出现次数超过一半的数字 | Python | 数组、哈希表、分治、计数、排序 | 简单 |
| 剑指 Offer 40 | 最小的k个数 | Python | 数组、分治、快速选择、排序、堆(优先队列) | 简单 |
| 剑指 Offer 41 | 数据流中的中位数 | Python | 设计、双指针、数据流、排序、堆(优先队列) | 困难 |
| 剑指 Offer 42 | 连续子数组的最大和 | Python | 数组、分治、动态规划 | 简单 |
| 剑指 Offer 44 | 数字序列中某一位的数字 | Python | 数学、二分查找 | 中等 |
| 剑指 Offer 45 | 把数组排成最小的数 | Python | 贪心、字符串、排序 | 中等 |
| 剑指 Offer 46 | 把数字翻译成字符串 | Python | 字符串、动态规划 | 中等 |
| 剑指 Offer 47 | 礼物的最大价值 | Python | 数组、动态规划、矩阵 | 中等 |
| 剑指 Offer 48 | 最长不含重复字符的子字符串 | Python | 哈希表、字符串、滑动窗口 | 中等 |
| 剑指 Offer 49 | 丑数 | Python | 哈希表、数学、动态规划、堆(优先队列) | 中等 |
| 剑指 Offer 50 | 第一个只出现一次的字符 | Python | 队列、哈希表、字符串、计数 | 简单 |
| 剑指 Offer 51 | 数组中的逆序对 | Python | 树状数组、线段树、数组、二分查找、分治、有序集合、归并排序 | 困难 |
| 剑指 Offer 52 | 两个链表的第一个公共节点 | Python | 哈希表、链表、双指针 | 简单 |
| 剑指 Offer 53 - I | 在排序数组中查找数字 I | Python | 数组、二分查找 | 简单 |
| 剑指 Offer 53 - II | 0~n-1中缺失的数字 | Python | 位运算、数组、哈希表、数学、二分查找 | 简单 |
| 剑指 Offer 54 | 二叉搜索树的第k大节点 | Python | 树、深度优先搜索、二叉搜索树、二叉树 | 简单 |
| 剑指 Offer 55 - I | 二叉树的深度 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 简单 |
| 剑指 Offer 55 - II | 平衡二叉树 | Python | 树、深度优先搜索、二叉树 | 简单 |
| 剑指 Offer 56 - I | 数组中数字出现的次数 | Python | 位运算、数组 | 中等 |
| 剑指 Offer 57 | 和为s的两个数字 | Python | 数组、双指针、二分查找 | 简单 |
| 剑指 Offer 57 - II | 和为s的连续正数序列 | Python | 数学、双指针、枚举 | 简单 |
| 剑指 Offer 58 - I | 翻转单词顺序 | Python | 双指针、字符串 | 简单 |
| 剑指 Offer 58 - II | 左旋转字符串 | Python | 数学、双指针、字符串 | 简单 |
| 剑指 Offer 59 - I | 滑动窗口的最大值 | Python | 队列、滑动窗口、单调队列、堆(优先队列) | 困难 |
| 剑指 Offer 59 - II | 队列的最大值 | Python | 设计、队列、单调队列 | 中等 |
| 剑指 Offer 61 | 扑克牌中的顺子 | Python | 数组、排序 | 简单 |
| 剑指 Offer 62 | 圆圈中最后剩下的数字 | Python | 递归、数学 | 简单 |
| 剑指 Offer 63 | 股票的最大利润 | Python | 数组、动态规划 | 中等 |
| 剑指 Offer 64 | 求1+2+…+n | Python | 位运算、递归、脑筋急转弯 | 中等 |
| 剑指 Offer 65 | 不用加减乘除做加法 | Python | 位运算、数组 | 简单 |
| 剑指 Offer 66 | 构建乘积数组 | Python | 数组、前缀和 | 中等 |
| 剑指 Offer 67 | 把字符串转换成整数 | Python | 字符串 | 中等 |
| 剑指 Offer 68 - I | 二叉搜索树的最近公共祖先 | Python | 树、深度优先搜索、二叉搜索树、二叉树 | 简单 |
| 剑指 Offer 68 - II | 二叉树的最近公共祖先 | Python | 树、深度优先搜索、二叉树 | 简单 |
| 剑指 Offer II 001 | 整数除法 | Python | 位运算、数学 | 简单 |
| 剑指 Offer II 002 | 二进制加法 | Python | 位运算、数学、字符串、模拟 | 简单 |
| 剑指 Offer II 003 | 前 n 个数字二进制中 1 的个数 | Python | 位运算、动态规划 | 简单 |
| 剑指 Offer II 004 | 只出现一次的数字 | Python | 位运算、数组 | 中等 |
| 剑指 Offer II 005 | 单词长度的最大乘积 | Python | 位运算、数组、字符串 | 中等 |
| 剑指 Offer II 006 | 排序数组中两个数字之和 | Python | 数组、双指针、二分查找 | 简单 |
| 剑指 Offer II 007 | 数组中和为 0 的三个数 | Python | 数组、双指针、排序 | 中等 |
| 剑指 Offer II 008 | 和大于等于 target 的最短子数组 | Python | 数组、二分查找、前缀和、滑动窗口 | 中等 |
| 剑指 Offer II 009 | 乘积小于 K 的子数组 | Python | 数组、滑动窗口 | 中等 |
| 剑指 Offer II 010 | 和为 k 的子数组 | Python | 数组、哈希表、前缀和 | 中等 |
| 剑指 Offer II 011 | 0 和 1 个数相同的子数组 | Python | 数组、哈希表、前缀和 | 中等 |
| 剑指 Offer II 012 | 左右两边子数组的和相等 | Python | 数组、前缀和 | 简单 |
| 剑指 Offer II 013 | 二维子矩阵的和 | Python | 设计、数组、矩阵、前缀和 | 中等 |
| 剑指 Offer II 016 | 不含重复字符的最长子字符串 | Python | 哈希表、字符串、滑动数组 | 中等 |
| 剑指 Offer II 017 | 含有所有字符的最短字符串 | Python | 哈希表、字符串、滑动窗口 | 困难 |
| 剑指 Offer II 018 | 有效的回文 | Python | 双指针、字符串 | 简单 |
| 剑指 Offer II 019 | 最多删除一个字符得到回文 | Python | 贪心、双指针、字符串 | 简单 |
| 剑指 Offer II 020 | 回文子字符串的个数 | Python | 字符串、动态规划 | 中等 |
| 剑指 Offer II 021 | 删除链表的倒数第 n 个结点 | Python | 链表、双指针 | 中等 |
| 剑指 Offer II 022 | 链表中环的入口节点 | Python | 哈希表、链表、双指针 | 中等 |
| 剑指 Offer II 023 | 两个链表的第一个重合节点 | Python | 哈希表、链表、双指针 | 简单 |
| 剑指 Offer II 024 | 反转链表 | Python | 递归、链表 | 简单 |
| 剑指 Offer II 025 | 链表中的两数相加 | Python | 栈、链表、数学 | 中等 |
| 剑指 Offer II 026 | 重排链表 | Python | 栈、递归、链表、双指针 | 中等 |
| 剑指 Offer II 027 | 回文链表 | Python | 栈、递归、链表、双指针 | 简单 |
| 剑指 Offer II 028 | 展平多级双向链表 | Python | 深度优先搜索、链表、双向链表 | 中等 |
| 剑指 Offer II 029 | 排序的循环链表 | Python | 链表 | 中等 |
| 剑指 Offer II 030 | 插入、删除和随机访问都是 O(1) 的容器 | Python | 设计、数组、哈希表、数学、随机化 | 中等 |
| 剑指 Offer II 031 | 最近最少使用缓存 | Python | 设计、哈希表、链表、双向链表 | 中等 |
| 剑指 Offer II 032 | 有效的变位词 | Python | 哈希表、字符串、排序 | 简单 |
| 剑指 Offer II 033 | 变位词组 | Python | 哈希表、字符串、排序 | 中等 |
| 剑指 Offer II 034 | 外星语言是否排序 | Python | 数组、哈希表、字符串 | 简单 |
| 剑指 Offer II 035 | 最小时间差 | Python | 数组、数学、字符串、排序 | 中等 |
| 剑指 Offer II 036 | 后缀表达式 | Python | 栈、数组、数学 | 中等 |
| 剑指 Offer II 037 | 小行星碰撞 | Python | 栈、数组 | 中等 |
| 剑指 Offer II 038 | 每日温度 | Python | 栈、数组、单调栈 | 中等 |
| 剑指 Offer II 039 | 直方图最大矩形面积 | Python | 栈、数组、单调栈 | 困难 |
| 剑指 Offer II 041 | 滑动窗口的平均值 | Python | 设计、队列、数组、数据流 | 简单 |
| 剑指 Offer II 042 | 最近请求次数 | Python | 设计、队列、数据流 | 简单 |
| 剑指 Offer II 043 | 往完全二叉树添加节点 | Python | 树、广度优先搜索、设计、二叉树 | 中等 |
| 剑指 Offer II 044 | 二叉树每层的最大值 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 中等 |
| 剑指 Offer II 045 | 二叉树最底层最左边的值 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 中等 |
| 剑指 Offer II 046 | 二叉树的右侧视图 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 中等 |
| 剑指 Offer II 047 | 二叉树剪枝 | Python | 树、深度优先搜索、二叉树 | 中等 |
| 剑指 Offer II 048 | 序列化与反序列化二叉树 | Python | 树、深度优先搜索、广度优先搜索、设计、字符串、二叉树 | 困难 |
| 剑指 Offer II 049 | 从根节点到叶节点的路径数字之和 | Python | 树、深度优先搜索、二叉树 | 中等 |
| 剑指 Offer II 050 | 向下的路径节点之和 | Python | 树、深度优先搜索、二叉树 | 中等 |
| 剑指 Offer II 051 | 节点之和最大的路径 | Python | 树、深度优先搜索、动态规划、二叉树 | 困难 |
| 剑指 Offer II 052 | 展平二叉搜索树 | Python | 栈、树、深度优先搜索、二叉搜索树、二叉树 | 简单 |
| 剑指 Offer II 053 | 二叉搜索树中的中序后继 | Python | 树、深度优先搜索、二叉搜索树、二叉树 | 中等 |
| 剑指 Offer II 054 | 所有大于等于节点的值之和 | Python | 树、深度优先搜索、二叉搜索树、二叉树 | 中等 |
| 剑指 Offer II 055 | 二叉搜索树迭代器 | Python | 栈、树、设计、二叉搜索树、二叉树、迭代器 | 中等 |
| 剑指 Offer II 056 | 二叉搜索树中两个节点之和 | Python | 树、深度优先搜索、广度优先搜索、二叉搜索树、哈希表、双指针、二叉树 | 简单 |
| 剑指 Offer II 057 | 值和下标之差都在给定的范围内 | Python | 数组、桶排序、有序集合、排序、滑动窗口 | 中等 |
| 剑指 Offer II 059 | 数据流的第 K 大数值 | Python | 树、设计、二叉搜索树、二叉树、数据流、堆(优先队列) | 简单 |
| 剑指 Offer II 060 | 出现频率最高的 k 个数字 | Python | 数组、哈希表、分治、桶排序、计数、快速选择、排序、堆(优先队列) | 中等 |
| 剑指 Offer II 062 | 实现前缀树 | Python | 设计、字典树、哈希表、字符串 | 中等 |
| 剑指 Offer II 063 | 替换单词 | Python | 字典树、数组、哈希、字符串 | 中等 |
| 剑指 Offer II 064 | 神奇的字典 | Python | 设计、字典树、哈希表、字符串 | 中等 |
| 剑指 Offer II 065 | 最短的单词编码 | Python | 字典树、数组、哈希表、字符串 | 中等 |
| 剑指 Offer II 066 | 单词之和 | Python | 设计、字典树、哈希表、字符串 | 中等 |
| 剑指 Offer II 067 | 最大的异或 | Python | 位运算、字典树、数组、哈希表 | 中等 |
| 剑指 Offer II 068 | 查找插入位置 | Python | 数组、二分查找 | 简单 |
| 剑指 Offer II 072 | 求平方根 | Python | 数学、二分查找 | 简单 |
| 剑指 Offer II 073 | 狒狒吃香蕉 | Python | 数组、二分查找 | 中等 |
| 剑指 Offer II 074 | 合并区间 | Python | 数组、排序 | 中等 |
| 剑指 Offer II 075 | 数组相对排序 | Python | 数组、哈希表、计数排序、排序 | 简单 |
| 剑指 Offer II 076 | 数组中的第 k 大的数字 | Python | 数组、分治、快速排序、排序、堆(优先队列) | 中等 |
| 剑指 Offer II 077 | 链表排序 | Python | 链表、双指针、分治、排序、归并排序 | 中等 |
| 剑指 Offer II 078 | 合并排序链表 | Python | 链表、分治、堆(优先队列)、归并排序 | 困难 |
| 剑指 Offer II 079 | 所有子集 | Python | 位运算、数组、回溯 | 中等 |
| 剑指 Offer II 080 | 含有 k 个元素的组合 | Python | 数组、回溯 | 中等 |
| 剑指 Offer II 081 | 允许重复选择元素的组合 | Python | 数组、回溯 | 中等 |
| 剑指 Offer II 082 | 含有重复元素集合的组合 | Python | 数组、回溯 | 中等 |
| 剑指 Offer II 083 | 没有重复元素集合的全排列 | Python | 数组、回溯 | 中等 |
| 剑指 Offer II 084 | 含有重复元素集合的全排列 | Python | 数组、回溯 | 中等 |
| 剑指 Offer II 085 | 生成匹配的括号 | Python | 字符串、动态规划、回溯 | 中等 |
| 剑指 Offer II 086 | 分割回文子字符串 | Python | 字符串、动态规划、回溯 | 中等 |
| 剑指 Offer II 087 | 复原 IP | Python | 字符串、回溯 | 中等 |
| 剑指 Offer II 088 | 爬楼梯的最少成本 | Python | 数组、动态规划 | 简单 |
| 剑指 Offer II 089 | 房屋偷盗 | Python | 数组、动态规划 | 中等 |
| 剑指 Offer II 090 | 环形房屋偷盗 | Python | 数组、动态规划 | 中等 |
| 剑指 Offer II 093 | 最长斐波那契数列 | Python | 数组、哈希表、动态规划 | 中等 |
| 剑指 Offer II 095 | 最长公共子序列 | Python | 字符串、动态规划 | 中等 |
| 剑指 Offer II 097 | 子序列的数目 | Python | 字符串、动态规划 | 困难 |
| 剑指 Offer II 098 | 路径的数目 | Python | 数组、动态规划、组合数学 | 中等 |
| 剑指 Offer II 101 | 分割等和子集 | Python | 数组、字符串、模拟 | 简单 |
| 剑指 Offer II 102 | 加减的目标值 | Python | 数组、动态规划、回溯 | 中等 |
| 剑指 Offer II 103 | 最少的硬币数目 | Python | 广度优先搜索、数组、动态规划 | 中等 |
| 剑指 Offer II 104 | 排列的数目 | Python | 数组、动态规划 | 中等 |
| 剑指 Offer II 105 | 岛屿的最大面积 | Python | 深度优先搜索、广度优先搜索、并查集、数组、矩阵 | 中等 |
| 剑指 Offer II 106 | 二分图 | Python | 深度优先搜索、广度优先搜索、并查集、图 | 中等 |
| 剑指 Offer II 107 | 矩阵中的距离 | Python | 广度优先搜索、数组、动态规划、矩阵 | 中等 |
| 剑指 Offer II 108 | 单词演变 | Python | 广度优先搜索、哈希表、字符串 | 困难 |
| 剑指 Offer II 109 | 开密码锁 | Python | 广度优先搜索、数组、哈希表、字符串 | 中等 |
| 剑指 Offer II 111 | 计算除法 | Python | 深度优先搜索、广度优先搜索、并查集、图、数组、最短路 | 中等 |
| 剑指 Offer II 112 | 最长递增路径 | Python | 深度优先搜索、广度优先搜索、图、拓扑排序、记忆化搜索、动态规划 | 困难 |
| 剑指 Offer II 113 | 课程顺序 | Python | 深度优先搜索、广度优先搜索、图、拓扑排序 | 中等 |
| 剑指 Offer II 116 | 朋友圈 | Python | 深度优先搜索、广度优先搜索、并查集、图 | 中等 |
| 剑指 Offer II 118 | 多余的边 | Python | 深度优先搜索、广度优先搜索、并查集、图 | 中等 |
| 剑指 Offer II 119 | 最长连续序列 | Python | 并查集、数组、哈希表 | 中等 |
| 面试题 01.07 | 旋转矩阵 | Python | 数组、数学、矩阵 | 中等 |
| 面试题 01.08 | 零矩阵 | Python | 数组、哈希表、矩阵 | 中等 |
| 面试题 02.02 | 返回倒数第 k 个节点 | Python | 链表、双指针 | 简单 |
| 面试题 02.05 | 链表求和 | Python | 递归、链表、数学 | 中等 |
| 面试题 02.06 | 回文链表 | Python | 栈、递归、链表、双指针 | 简单 |
| 面试题 02.07 | 链表相交 | Python | 哈希表、链表、双指针 | 简单 |
| 面试题 02.08 | 环路检测 | Python | 链表、双指针 | 中等 |
| 面试题 03.02 | 栈的最小值 | Python | 栈、设计 | 简单 |
| 面试题 03.04 | 化栈为队 | Python | 栈、设计 | 简单 |
| 面试题 04.02 | 最小高度树 | Python | 树、二叉搜索树、数组、分治、二叉树 | 简单 |
| 面试题 04.05 | 合法二叉搜索树 | Python | 树、深度优先搜索、递归 | 中等 |
| 面试题 04.06 | 后继者 | Python | 树、深度优先搜索、二叉搜索树、二叉树 | 中等 |
| 面试题 04.08 | 首个共同祖先 | Python | 树 | 中等 |
| 面试题 04.12 | 求和路径 | Python | 树、深度优先搜索、二叉树 | 中等 |
| 面试题 08.04 | 幂集 | Python | 位运算、数组、回溯算法 | 中等 |
| 面试题 08.07 | 无重复字符串的排列组合 | Python | 字符串、回溯 | 中等 |
| 面试题 08.08 | 有重复字符串的排列组合 | Python | 字符串、回溯 | 中等 |
| 面试题 08.09 | 括号 | Python | 字符串、回溯算法 | 中等 |
| 面试题 08.10 | 颜色填充 | Python | 深度优先搜索、广度优先搜索、数组、矩阵 | 中等 |
| 面试题 08.12 | 八皇后 | Python | 数组、回溯 | 困难 |
| 面试题 10.01 | 合并排序的数组 | Python | 数组、双指针、排序 | 简单 |
| 面试题 10.02 | 变位词组 | Python | 哈希表、字符串、排序 | 中等 |
| 面试题 10.09 | 排序矩阵查找 | Python | 数组、二分查找、分治、矩阵 | 中等 |
| 面试题 16.02 | 单词频率 | Python | 设计、字典树、数组、哈希表、字符串 | 中等 |
| 面试题 16.05 | 阶乘尾数 | Python | 数学 | 简单 |
| 面试题 16.26 | 计算器 | Python | 栈、字符串 | 中等 |
| 面试题 17.14 | 最小K个数 | Python | 数组、分治、快速选择、排序、堆(优先队列) | 中等 |
| 面试题 17.15 | 最长单词 | Python | 字典树、数组、哈希表、字符串 | 中等 |
| 面试题 17.17 | 多次搜索 | Python | 字典树、数组、哈希表、字符串、字符串匹配、滑动窗口 | 中等 |


