- 教程
- 文档
- 知识库
【免费下载链接】AlgoNote
⛽️「算法通关手册」:从零开始的「算法与数据结构」学习教程,200 道「算法面试热门题目」,1000+ 道「LeetCode 题目解析」,持续更新中!
本文是开源仓库 AlgoNote(算法通关手册)中 docs/00_preface/00_05_solutions_list.md 的技术导读:它按题号(字典序)汇总了仓库已完成的全部 1565 道 LeetCode 题解入口、对应的算法标签与难度分级。读完本文,你将掌握这套题解库的整体规模、目录组织方式、难度与标签分布,并学会如何通过题号检索、通过题解文件高效刷题,以及如何结合仓库中的算法基础教程与分类清单安排复习路线。
一、这份清单是什么:1565 道题解的总目录
docs/00_preface/00_05_solutions_list.md是 AlgoNote 仓库中「LeetCode 题解」部分的总索引清单(在序言章节 index.md 中被描述为「LeetCode 题解(字典序排序,850+ 道题解)」,而清单本身已更新至1565 道,以清单文件内标注为准)。它的作用类似一个「题号 → 题解文件」的跳转表:
- 每一行对应一道 LeetCode 题目,包含四个要素:标题(带原题链接)、题解(带仓库内题解文件链接)、标签(涉及的算法/数据结构)、难度(简单 / 中等 / 困难);
- 全部题目按题号从小到大排列(即字典序排序),并额外收录了LCR 系列(力扣经典题目)与面试题(《程序员面试金典》系列)两个特殊区块;
- 统计全文数据表格可得:简单 407 道、中等 858 道、困难 300 道,合计 1565 道;其中普通编号题目约 933 道,LCR 系列 170 道,面试题 30 道。
这种「一题一行 + 表格四列」的编排方式,天然适合搜索引擎、Agent 与 LLM 解析:题号、标签、难度都是结构化字段,可直接用于检索、分类和生成推荐列表。
二、仓库目录组织:题解文件如何存放
在动手使用清单之前,先理解题解文件在仓库中的物理位置,这样从清单点击「题解」链接后不会迷路。
题解统一存放在 docs/solutions 目录下,按题号区间分子目录,命名规则为:
| 目录 | 覆盖题号 | 说明 |
|---|---|---|
| docs/solutions/0001-0099 | 第 1 ~ 99 题 | 含 two-sum、3sum、longest-palindromic-substring 等经典题 |
| docs/solutions/0100-0199 | 第 100 ~ 199 题 | 含 LRU 缓存、单词拆分等高频题 |
| docs/solutions/0200-0299 | 第 200 ~ 299 题 | 含岛屿数量、Trie 等 |
| docs/solutions/0300-0399 | 第 300 ~ 399 题 | 含零钱兑换、最长递增子序列等 |
| docs/solutions/0400-0499 | 第 400 ~ 499 题 | 含分割等和子集、LFU 缓存等 |
| docs/solutions/0500-0599 | 第 500 ~ 599 题 | 含斐波那契数、最长回文子序列等 |
| docs/solutions/0600-0699 | 第 600 ~ 699 题 | 含 24 点游戏等 |
| docs/solutions/0700-0799 | 第 700 ~ 799 题 | 含二分查找、设计哈希集合等 |
| docs/solutions/0800-0899 | 第 800 ~ 899 题 | 含柠檬水找零等 |
| docs/solutions/0900-0999 | 第 900 ~ 999 题 | 含按奇偶排序数组等 |
| docs/solutions/1000-1099 | 第 1000 ~ 1099 题 | 含查找共用字符等 |
| docs/solutions/1100-1199 | 第 1100 ~ 1199 题 | 含最长公共子序列等 |
| docs/solutions/1200-1299 | 第 1200 ~ 1299 题 | 含最小绝对差等 |
| docs/solutions/1300-1399 | 第 1300 ~ 1399 题 | 含两棵二叉搜索树中的所有元素等 |
| docs/solutions/1400-1499 | 第 1400 ~ 1499 题 | 含一维数组的动态和等 |
| docs/solutions/1500-1599 | 第 1500 ~ 1599 题 | 含判断能否形成等差数列等 |
| docs/solutions/1600-1699 | 第 1600 ~ 1699 题 | 含设计停车系统等 |
| docs/solutions/1700-1799 | 第 1700 ~ 1799 题 | 含解码异或后的数组等 |
| docs/solutions/1800-1899 | 第 1800 ~ 1899 题 | 含数组元素积的符号等 |
| docs/solutions/1900-1999 | 第 1900 ~ 1999 题 | 含数组串联等 |
| docs/solutions/2000-2099 | 第 2000 ~ 2099 题 | 含执行操作后的变量值等 |
| docs/solutions/2100-2199 | 第 2100 ~ 2199 题 | 含查找给定哈希值的子串等 |
| docs/solutions/2200-2299 | 第 2200 ~ 2299 题 | 含两整数相加等 |
| docs/solutions/2300-2399 | 第 2300 ~ 2399 题 | 含统计特殊整数等 |
| docs/solutions/2400-2499 | 第 2400 ~ 2499 题 | 含公因子的数目等 |
| docs/solutions/2500-2599 | 第 2500 ~ 2599 题 | 含最大价值和与最小价值和的差值等 |
| docs/solutions/2700-2799 | 第 2700 ~ 2799 题 | 含统计整数数目等 |
| docs/solutions/LCR | LCR 系列 | 共 170 道,文件名即 LeetCode 上的题目 slug,如xoh6Oh.md、JFETK5.md |
| docs/solutions/interviews | 面试题系列 | 共 30 道,文件名如rotate-matrix-lcci.md、min-stack-lcci.md |
每个题解文件采用统一模板(可参考 two-sum.md),依次包含:题目链接 → 题目大意(含数据范围与示例)→ 解题思路(多个思路分别给出)→ 思路代码(Python)→ 复杂度分析。这种「一题多思路 + 代码 + 复杂度」的结构是这套题解库的核心价值:不仅给出答案,还讲清每种解法的来龙去脉。
三、清单覆盖范围:从第 1 题到 LCR、面试题
3.1 经典编号区间(第 1 ~ 2799 题)
清单覆盖了 LeetCode 从0001. 两数之和到2719. 统计整数数目的广泛区间。由于是「已完成题解」的汇总,编号并非连续,而是按题号分段的稀疏集合,例如:
- 第 1 ~ 99 题:覆盖两数之和(哈希表)、三数之和(双指针+排序)、正则表达式匹配(递归/DP)、合并 K 个升序链表(堆/分治)、接雨水(单调栈/双指针/DP)等;
- 第 100 ~ 199 题:覆盖 LRU 缓存、单词拆分、买卖股票系列、打家劫舍、翻转二叉树等;
- 第 200 ~ 299 题:覆盖岛屿数量、课程表(拓扑排序)、实现 Trie、滑动窗口最大值(单调队列)等;
- 第 300 ~ 399 题:覆盖最长递增子序列、零钱兑换、戳气球、俄罗斯套娃信封等;
- 第 400 ~ 499 题:覆盖分割等和子集、目标和、LFU 缓存、132 模式、移掉 K 位数字等;
- 第 500 ~ 599 题:覆盖斐波那契数、零钱兑换 II、01 矩阵、键值映射等;
- 第 600 ~ 699 题:覆盖 24 点游戏、两个键的键盘、设计循环队列、冗余连接(并查集)等;
- 第 700 ~ 799 题:覆盖二分查找、设计哈希集合/映射、网络延迟时间(最短路)、判断二分图等;
- 第 800 ~ 899 题:覆盖柠檬水找零、翻转图像、鸡蛋掉落、单调数列等;
- 第 900 ~ 999 题:覆盖按奇偶排序数组、腐烂的橘子(多源 BFS)、等式方程的可满足性(并查集)等;
- 第 1000 ~ 2799 题:覆盖查找共用字符、最长公共子序列、检查数组对是否可以被 k 整除、执行操作后的变量值、统计区间中的整数数目、统计特殊整数、统计整数数目等近年新题。
3.2 LCR 系列(力扣经典题,170 道)
LCR 系列是 LeetCode 中国区「经典题目」题集,对应原《剑指 Offer》系列题目的新版编号。清单中从LCR 001. 两数相除到LCR 194. 二叉树的最近公共祖先收录了 170 道,覆盖:
- 位运算与数学:LCR 003. 比特位计数、LCR 004. 只出现一次的数字 II、LCR 190. 加密运算;
- 链表与双指针:LCR 021. 删除链表的倒数第 N 个结点、LCR 024. 反转链表、LCR 027. 回文链表、LCR 171. 训练计划 V(找公共节点);
- 树与二叉树:LCR 144. 翻转二叉树、LCR 145. 判断对称二叉树、LCR 152. 验证二叉搜索树的后序遍历序列、LCR 193/194. 最近公共祖先;
- 动态规划:LCR 088. 使用最小花费爬楼梯、LCR 089/090. 打家劫舍 I/II、LCR 103. 零钱兑换、LCR 165. 解密数字;
- 设计类:LCR 031. LRU 缓存、LCR 147. 最小栈、LCR 160. 数据流中的中位数、LCR 184. 设计自助结算系统;
- 滑动窗口:LCR 016. 无重复字符的最长子串、LCR 167. 招式拆解 I。
从仓库目录看,docs/solutions/LCR 下共有 171 个 md 文件(含 index 类导航文件),题解文件名与清单中的「题解」列一一对应。
3.3 面试题系列(《程序员面试金典》,30 道)
清单末尾单独列出了面试题区块,收录《程序员面试金典》原题 30 道,例如:
- 面试题 01.07. 旋转矩阵、01.08. 零矩阵(数组/矩阵);
- 面试题 02.02. 返回倒数第 k 个节点、02.06. 回文链表、02.07. 链表相交、02.08. 环路检测(链表/双指针);
- 面试题 03.02. 栈的最小值、03.04. 化栈为队(栈/设计);
- 面试题 04.02. 最小高度树、04.05. 合法二叉搜索树、04.06. 后继者(树/二叉搜索树);
- 面试题 08.04. 幂集、08.07/08.08. 排列组合、08.09. 括号、08.12. 八皇后(回溯);
- 面试题 10.01. 合并排序的数组、10.02. 变位词组、10.09. 排序矩阵查找;
- 面试题 16.02. 单词频率、16.05. 阶乘尾数、16.26. 计算器;
- 面试题 17.06. 2出现的次数、17.14. 最小K个数、17.15. 最长单词、17.17. 多次搜索。
这些题目与「面试最常考 100 / 200 题」清单(00_07_interview_100_list.md、00_08_interview_200_list.md)互为补充,是准备国内互联网公司算法面试的高价值素材。
四、难度与标签分布:这份题库的“含金量”结构
对清单表格做统计,可以得到该题库的结构画像:
| 难度 | 数量 | 占比 |
|---|---|---|
| 简单 | 407 | 约 26% |
| 中等 | 858 | 约 55% |
| 困难 | 300 | 约 19% |
可以看到中等题是绝对主体(约 55%),符合算法面试以中等题为主、简单题打基础、困难题拔高的现实分布;困难题中如 0004. 寻找两个正序数组的中位数、0023. 合并 K 个升序链表、0037. 解数独、0076. 最小覆盖子串、0124. 二叉树中的最大路径和、0239. 滑动窗口最大值、0312. 戳气球、0887. 鸡蛋掉落 等,均为面试高频压轴题。
从标签维度看,清单为每道题标注了算法/数据结构标签,常见标签及其代表性题目包括:
| 标签 | 代表题目 |
|---|---|
| 数组 | 0189. 轮转数组、0066. 加一、0724. 寻找数组的中心下标 |
| 哈希表 | 0001. 两数之和、0049. 字母异位词分组、0138. 随机链表的复制 |
| 双指针 | 0015. 三数之和、0075. 颜色分类、0167. 两数之和 II |
| 滑动窗口 | 0003. 无重复字符的最长子串、0076. 最小覆盖子串、0239. 滑动窗口最大值 |
| 二分查找 | 0033. 搜索旋转排序数组、0035. 搜索插入位置、0704. 二分查找 |
| 链表 | 0021. 合并两个有序链表、0142. 环形链表 II、0206. 反转链表 |
| 栈 / 单调栈 | 0020. 有效的括号、0084. 柱状图中最大的矩形、0739. 每日温度 |
| 树 / 二叉树 | 0094. 二叉树的中序遍历、0102. 二叉树的层序遍历、0236. 二叉树的最近公共祖先 |
| 回溯 | 0039. 组合总和、0046. 全排列、0051. N 皇后 |
| 动态规划 | 0053. 最大子数组和、0072. 编辑距离、0300. 最长递增子序列、0322. 零钱兑换 |
| 贪心 | 0045. 跳跃游戏 II、0134. 加油站、0452. 用最少数量的箭引爆气球 |
| 深度/广度优先搜索 | 0200. 岛屿数量、0207. 课程表、0994. 腐烂的橘子 |
| 并查集 | 0128. 最长连续序列、0684. 冗余连接、0547. 省份数量 |
| 位运算 | 0136. 只出现一次的数字、0231. 2 的幂、0268. 丢失的数字 |
| 图 / 拓扑排序 / 最短路 | 0210. 课程表 II、0743. 网络延迟时间、0787. K 站中转内最便宜的航班 |
| 字典树 | 0208. 实现 Trie、0212. 单词搜索 II、0336. 回文对 |
| 线段树 / 树状数组 | 0307. 区域和检索-数组可修改、0315. 计算右侧小于当前元素的个数、0699. 掉落的方块 |
| 堆(优先队列) | 0215. 数组中的第K个最大元素、0295. 数据流的中位数、0347. 前 K 个高频元素 |
| 状态压缩 / 数位 DP | 0464. 我能赢吗、0902. 最大为 N 的数字组合、2376. 统计特殊整数 |
| 多线程 | 1114. 按序打印、1115. 交替打印 FooBar、1195. 交替打印字符串 |
注:同一道题往往有多个标签(如 0042. 接雨水 同时标注了栈、数组、双指针、动态规划、单调栈),标签体系与 LeetCode 官方标签基本一致,可与 00_06_categories_list.md 的「按分类排序」清单互相印证。
五、如何高效使用这份清单
5.1 按题号快速定位题解
因为清单按题号排序,最直接的用法是先查题号,再点「题解」链接:
- 打开 docs/00_preface/00_05_solutions_list.md;
- 使用浏览器的「页面内搜索」(Ctrl / Cmd + F)输入目标题号,如
0001或LCR 031; - 点击对应行的「题解」链接,进入
docs/solutions/对应区间/题解.md; - 阅读「题目大意 → 解题思路 → 代码 → 复杂度分析」,先在编辑器中自行尝试,再对照参考解法。
5.2 与分类清单、面试清单搭配使用
这份字典序清单解决的是「查得到」的问题;而刷题路线规划建议配合另外三份序言清单:
- 00_06_categories_list.md:按分类排序,把题目重新组织到「数组 / 链表 / 栈队列哈希 / 字符串 / 树 / 图 / 贪心 / 动态规划」等专题下,适合专题式学习(如专攻动态规划时,直接在该清单中按专题连续刷题);
- 00_07_interview_100_list.md:面试最常考 100 题,适合面试前快速过一遍核心题;
- 00_08_interview_200_list.md:面试最常考 200 题,适合更高强度的面试冲刺。
推荐的完整学习路径是:先用 00_02_data_structures_algorithms.md 与 00_03_algorithm_complexity.md 打牢「数据结构 + 复杂度」基础,再按 00_04_leetcode_guide.md 了解刷题方法论,然后按分类清单专题刷题、用本清单按题号回溯检索、最后用面试 100/200 题查漏补缺。
5.3 直接阅读仓库源码配套实现
本题解库与仓库中的 codes 源码目录一一呼应。例如:
- 数组排序类题解对应 codes/python/01_array 下的冒泡、选择、插入、希尔、归并、快排、堆排、计数、桶排、基数排序实现;
- 链表类题解对应 codes/python/02_linked_list 下的链表结构与各种链表排序;
- 栈、队列、哈希表类题解对应 codes/python/03_stack_queue_hash_table 下的顺序栈、链栈、单调栈、顺序队列、循环队列、链队列、双端队列、优先队列;
- 字符串匹配类题解对应 codes/python/04_string 下的暴力匹配、KMP、Boyer-Moore、Horspool、Sunday、Rabin-Karp、Trie;
- 树、图、动态规划类题解对应 codes/python/05_tree、codes/python/06_graph、codes/python/08_dynamic_programming。
建议「先看题解思路 → 再到 codes 目录读源码实现 → 回到 LeetCode 提交验证」,实现理论学习与编码实战的闭环。
六、题解文件的写作范式:以两数之和为例
清单中的每一行最终都指向一个独立题解文件,其内容范式可以从 0001. 两数之和 一窥全貌:
- 元信息:标题行自带题号与原题链接;开头给出
标签:数组、哈希表与难度:简单; - 题目大意:用一两句话复述题意,并给出约束范围(如
2 ≤ nums.length ≤ 10^4、数值范围)与输入输出示例; - 解题思路:同一道题给出多种解法。两数之和分别给出了「思路 1:枚举算法」(双重循环,O(n²))与「思路 2:哈希表」(一遍遍历查
target - nums[i],O(n)); - 代码:每种思路配一段可直接运行的 Python 解法;
- 复杂度分析:每种思路末尾明确标注时间与空间复杂度。
这种范式意味着:清单不仅是索引,还是通往「一题多解 + 复杂度对比」内容的入口。刷题时对比同一题的不同解法(如暴力 vs 哈希 vs 双指针 vs 动态规划),正是提升算法能力的关键。
七、版本与维护说明
- 清单文件本身标注为「已完成1565道」,与逐行统计结果(中等 858、困难 300、简单 407)完全一致;但序言目录 index.md 中对本文档的简介仍写着「850+ 道题解」,属于目录简介未同步更新的滞后描述,以清单文件正文的 1565 道为准;
- 题目覆盖随仓库持续更新,编号区间存在稀疏性(并非每个题号都有题解),检索时请以清单中实际出现的行与 docs/solutions 目录下实际存在的文件为准;
- 仓库采用「理论学习(docs 各章)+ 源码实现(codes/python 各目录)+ 题目解析(docs/solutions)」三层结构,本题解清单是其中「题目解析」层的总入口。
八、小结
docs/00_preface/00_05_solutions_list.md是 AlgoNote「算法通关手册」中承上启下的题解总索引:向上承接序言中的算法基础与 LeetCode 攻略,向下直达 1565 道带标签、带难度、带多解法代码的题解文件。掌握它的目录规则(题号区间分目录)、区块构成(经典题 + LCR + 面试题)、难度结构(简单 407 / 中等 858 / 困难 300)以及与分类清单、源码目录的联动方式,你就拥有了在这套仓库中「按题号查、按专题刷、按源码深挖」的完整检索能力。
- 教程
- 文档
- 知识库
【免费下载链接】AlgoNote
⛽️「算法通关手册」:从零开始的「算法与数据结构」学习教程,200 道「算法面试热门题目」,1000+ 道「LeetCode 题目解析」,持续更新中!
相关推荐
AlgoNote 算法通关手册题解:LeetCode 0039「组合总和」回溯算法全解析
AlgoNote 算法通关手册题解:LeetCode 0039「组合总和」回溯算法全解析 本篇题解以 docs/solutions/0001 0099/comb
教程文档知识库AlgoNote 算法通关手册:LeetCode 面试最常考 100 题分类刷题清单与仓库题解导航
AlgoNote 算法通关手册:LeetCode 面试最常考 100 题分类刷题清单与仓库题解导航 「LeetCode 面试最常考 100 题」是 AlgoNo
教程文档知识库组合总和 II 题解:AlgoNote「算法通关手册」回溯去重实战解析(LeetCode 0040)
组合总和 II 题解:AlgoNote「算法通关手册」回溯去重实战解析(LeetCode 0040) 本篇基于「算法通关手册」(AlgoNote)题库解析,完整
教程文档知识库
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考