算法教程

55 篇 · 共 14 章

这个板块是按书的方式组织的,不是博客 —— 章节之间有先后,每篇底部有上/下一篇,左侧目录树贯穿全站。 从头读或者按目录跳着读都行。

章节顺序是按知识点依赖排的,不是按难度 —— 每章卡片下面标着它的前置章节,跳读时看那一行。 不知道从哪开始就看这个板块怎么读。

📐 算法路线图把 14 章画成依赖图,一眼看清先学什么;可以勾选记录读到哪了📝 习题总览257 道力扣题按章归类,可按难度和完成状态筛选;进度与文章、路线图共用⚙️ 在线判题(自建 OJ)16 道自出的题,注册后直接提交、几秒出结果 —— 每道题的数据都要求能抓出典型错解才准上线。难度偏入门,与上面的力扣题单不是一回事

章节

导读与学习路线 · 2 篇本站怎么读、按什么顺序读、面试前的速成路线无前置,可直接开始数组基础与常用操作 · 5 篇数组的原理,以及前缀和、差分数组、二维数组这三类高频技巧无前置,可直接开始链表 · 2 篇链表的原理与基本操作,以及链表上的双指针 —— 递归思维由此引出无前置,可直接开始字符串 · 4 篇JavaScript 字符串的坑、KMP 匹配、回文问题前置:数组基础与常用操作基础数据结构 · 5 篇环形数组、栈与队列、哈希表,以及「设计一个数据结构」这类题前置:数组基础与常用操作 · 链表双指针技巧 · 5 篇覆盖面最广的一套模板:数组双指针、滑动窗口、二分搜索、随机算法前置:数组基础与常用操作递归与二叉树 · 5 篇全书的枢纽。后面的回溯、DFS、分治、动规、BFS、图,全是它的变形前置:链表遍历视角:回溯与 DFS · 3 篇把递归树当成一棵要走遍的树 —— 关注的是「路径」前置:递归与二叉树子问题视角:分治与动态规划 · 8 篇把递归树当成子问题的分解 —— 关注的是「返回值」前置:递归与二叉树BFS 与最短路径 · 3 篇层序遍历的推广:从「一层一层走」到 Dijkstra前置:递归与二叉树高级数据结构 · 6 篇二叉搜索树、堆、字典树、图、并查集前置:递归与二叉树随机化与近似结构 · 4 篇跳表、布隆过滤器、一致性哈希、限流器 —— 放弃一点确定性,换来规模上的可行前置:基础数据结构 · 高级数据结构数学与贪心 · 2 篇不在主依赖链上的两块,随时可以插进来看无前置,可直接开始高频面试题 · 1 篇按出现频率排序的题目,时间不够时从这里开始前置:双指针技巧 · 子问题视角:分治与动态规划