这是「算法学习」系列的开篇。后续 11 篇会按本篇规划的路线逐篇更新,每篇都是可独立阅读的完整教程(原理推导 + 代码模板 + 执行追踪 + 面试问答)。本篇给出全景地图、学习方法和进度打卡表,建议先收藏本篇,跟着目录一路刷下去。
一、写给谁看
有编程基础(Python / Java 皆可,示例以 Python 为主、关键处附 Java 对照),但算法零基础或基础薄弱的开发者;
想系统刷 LeetCode 但不知从何下手、刷了就忘的同学;
准备面试,需要在 2~3 个月内建立完整算法框架的求职者。
二、为什么是这条路线
本路线按依赖关系编排,每一章都是后一章的直接地基:
复杂度分析(看懂一切算法的尺子) ↓ 数组/链表 → 栈/队列(线性结构 + 均摊分析) ↓ ↓ 哈希表 ←──────────────────┘(降复杂度第一工具) ↓ 递归与回溯(决策树思维)→ 树与二叉树(递归最佳练兵场) ↓ 排序算法(分治/堆/稳定性的集中考核) ↓ 二分与双指针(边界工程学 + O(n²)→O(n)) ↓ 动态规划(压轴思想)→ 贪心(可证明的捷径) ↓ 图论(终点站:遍历 + 拓扑 + 并查集)
三个阶段的量化目标:
| 阶段 | 章节 | 时间 | 结业标准 |
|---|---|---|---|
| 基础篇 | 01~04 | 1~2 周 | 看懂复杂度;三大链表模板默写;单调栈会追踪执行;哈希三种姿势秒判 |
| 进阶篇 | 05~08 | 3~4 周 | 回溯三兄弟(子集/排列/组合)一次写对;四种遍历双实现;手撕快排归并;两套二分模板免检 |
| 高级篇 | 09~11 | 4~6 周 | 五步法独立推转移方程;0-1 背包一维倒序说清为什么;拓扑排序判环;并查集双优化 |
总计约 8~12 周,每天 1~2 题的强度。
三、系列目录(随更新补链接)
| 篇号 | 标题 | 核心内容 |
|---|---|---|
| 00 | 开篇:学习路线与使用指南(本篇) | 全景地图 |
| 01 | 深入理解大 O 表示法 | 复杂度推导、均摊分析、递归树 |
| 02 | 数组与链表 | 内存视角、三大模板(dummy/反转/快慢) |
| 03 | 栈与队列 | 单调栈、单调队列、两栈实现队列 |
| 04 | 哈希表 | 原理(冲突/扩容/树化)+ 三种姿势 |
| 05 | 递归与回溯 | 决策树、回溯框架、去重剪枝 |
| 06 | 树与二叉树 | 四种遍历双实现、BST、构造题 |
| 07 | 排序算法 | 快排 partition、归并、堆排序、线性排序 |
| 08 | 二分查找与双指针 | 循环不变量、二分答案、滑动窗口 |
| 09 | 动态规划 | 记忆化→递推→滚动优化、五步法、背包 |
| 10 | 贪心算法 | 交换论证、区间调度、贪心→DP 决策链 |
| 11 | 图论入门 | BFS/DFS、拓扑排序、并查集 |
四、每篇的固定结构
后续每篇都是同一副骨架,方便按需取用:
前言:本篇解决什么问题;
原理/核心概念:不止「怎么写」,更讲「为什么」——复杂度推导、性质证明;
代码模板:可直接默写的标准实现,关键段落配执行追踪表(亲眼看到每一步);
高频题型清单:LeetCode 题号 + 考点标注,按难度递进;
易错点清单:每条都是真实事故现场;
面试高频问答:口头表达层面的标准答法;
总结 + 下篇预告。
五、学习方法(比路线本身更重要)
模板默写三遍法:每篇的「必背模板」合上书写三遍,第三遍不出错才算过。模板是肌肉记忆,不是理解记忆;
先追踪再编码:遇到新算法,先在纸上用 3~5 个元素手动执行一遍(本系列的追踪表就是示范),再写代码——写错率直接砍半;
做题流程:15 分钟想思路 → 想不出看题解 → 看懂后关掉题解独立写→ 记入错题本标注「考哪个模板」;
二刷节奏:一周后重做本周错题,只看自己写的笔记;一个月后再刷一次,还错的题进「钉子户名单」重点照顾;
复杂度随手标注:每道题 AC 后在注释里写时间/空间复杂度,坚持一个月,复杂度直觉自然形成。
六、进度打卡表
| 周 | 计划章节 | 做题数 | 完成 |
|---|---|---|---|
| 1 | 01 复杂度 + 02 数组链表 | 8 | ☐ |
| 2 | 03 栈队列 + 04 哈希表 | 10 | ☐ |
| 3 | 05 递归回溯 | 10 | ☐ |
| 4 | 06 树与二叉树 | 10 | ☐ |
| 5 | 07 排序 + 复习链表 | 8 | ☐ |
| 6 | 08 二分与双指针 | 10 | ☐ |
| 7 | 09 动态规划(上:线性 DP) | 10 | ☐ |
| 8 | 09 动态规划(下:背包系) | 10 | ☐ |
| 9 | 10 贪心 | 8 | ☐ |
| 10 | 11 图论 | 10 | ☐ |
| 11~12 | 全系列错题二刷 + 面试模拟 | 15 | ☐ |
七、写在最后
算法学习的最大误区是「收藏 = 学会」。这个系列的正确打开方式:读一篇 → 默写模板 → 刷对应题单 → 打卡,一步不省。
从下一篇《深入理解大 O 表示法》开始,我们正式出发。更新不掉队,欢迎关注、点赞、收藏三连,评论区聊你的学习进度。