图论
1. 岛屿问题
1.1. DFS遍历基本结构
DFS遍历关键点:①相邻结点 ②判断base case
避免重复遍历:标记——0 - 海洋; 1 - 陆地(未遍历);2 - 陆地(已遍历)
1 | void dfs(int[][] grid, int r, int c){ |
1.2. BFS遍历基本结构
1 | public void bfs(int[][] matrix, int i, int j){ |
2. 最短路径
2.1. Dijkstra算法
适合场景:单源最短路径,权值非负
1. 三部曲
- 选源点到哪个节点近且该节点未被访问过
- 标记该节点
- 更新非访问节点到源点距离(minDist数组)
2. 重要数组
minDist[n]:记录每个节点距离源点的最小距离
3. 代码框架
1 | import java.util.*; |
用堆优化后
1 | import java.util.*; |
2.2. Floyd算法
适合场景:多源最短路径、可正可负、动态规划
1 | import java.util.*; |
参考链接
- 标题: 图论
- 作者: LuluyLand
- 创建于 : 2025-04-14 22:38:34
- 更新于 : 2025-04-20 15:13:18
- 链接: https://luluy233.github.io/2025/04/14/图论/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论