Appearance
序言
关于本书
这是《LeetCode 算法通关之路》系列的第四册——图论与搜索篇。
图是一种强大的数据结构,能够描述实体之间的复杂关系。从社交网络到地图导航,从任务调度到推荐系统,图论无处不在。
前置要求
学习本书前,你需要具备:
- ✅ 扎实的递归基础(第二册第一部分)
- ✅ 熟悉队列和栈的操作(第一册第六部分)
- ✅ 了解哈希表的使用(第一册第八部分)
- ✅ 有一定的动态规划基础会更好(第三册)
本书内容
本书系统讲解图论与搜索算法:
| 章节 | 内容 | 典型问题 |
|---|---|---|
| 图的基础 | 概念、存储、建模思维 | 图论问题的基础 |
| DFS | 深度优先搜索专题 | 岛屿问题、路径搜索 |
| BFS | 广度优先搜索 | 最短路径、层次遍历 |
| 图遍历综合 | DFS vs BFS 选择 | 连通分量、二分图判定 |
| 拓扑排序 | Kahn、DFS 实现 | 课程表系列 |
| 并查集 | 路径压缩、按秩合并 | 连通性问题 |
| 最短路径 | Dijkstra、Bellman-Ford、Floyd | 网络延迟、航班问题 |
| 最小生成树 | Kruskal、Prim | 最小连接代价 |
| 高级搜索 | 双向 BFS、A* | 滑动谜题、八数码 |
| 二分图匹配 | 匈牙利算法 | 最大匹配问题 |
DFS 专题的重要性
本书特别设置了 DFS 专题章节,因为:
- DFS 是图论的核心:理解 DFS 才能理解图的遍历
- DFS 应用广泛:连通性、路径搜索、拓扑排序都依赖 DFS
- DFS 思维是基础:很多高级算法都建立在 DFS 之上
本书在丛书中的位置
第一册 → 第二册 → 第三册 → [第四册] → 第五册 → 第六册
数据结构 算法技巧 动态规划 图论搜索 高级结构 算法竞赛
基础 篇 精通篇 篇 篇 实战篇与相邻册次的关系
← 前置:第三册《动态规划精通篇》
- 最短路径算法与 DP 思想相通
- 图上 DP 是常见面试题型
→ 后续:第五册《高级数据结构篇》
- 树链剖分、LCA 等建立在图论基础上
- 并查集的高级应用
→ 关联:第六册《算法竞赛实战篇》
- 网络流是图论的高级主题,在第六册讲解
学习建议
- 先学 DFS/BFS:这是图论的基础中的基础
- 画图理解:每道题都画图,有助于理解算法过程
- 注意建模:很多问题的难点在于如何建模成图
- 区分场景:什么时候用 DFS,什么时候用 BFS
面试重点
图论在面试中的考察频率:
| 知识点 | 面试频率 | 难度 |
|---|---|---|
| DFS/BFS | ⭐⭐⭐⭐⭐ | 中等 |
| 拓扑排序 | ⭐⭐⭐⭐ | 中等 |
| 并查集 | ⭐⭐⭐⭐ | 中等 |
| 最短路径 | ⭐⭐⭐ | 中等-困难 |
| 最小生成树 | ⭐⭐ | 中等 |
开始学习
图论是算法世界的重要版图。
掌握它,你将能够解决更多复杂的实际问题。
祝学习愉快!