稀有猿诉

十年磨一剑,历炼出锋芒,说话千百句,不如码二行。

Shortest Path in Graph

图中的路径问题,特别是最短路径问题是图论中算法的核心,今天 就来总结 一下。

BFS求无权最短径

对于 无权图,用BFS就能找到两个节点之间的最短路径,这是BFS的天然优势。遍历 的时候 要注意 用「圈层式」遍历,也就是说对于 当前节点,把其相邻节点遍历 完,才能算走了一步。

Dijkstra求有向无环带权图的最短路径

对于有向无环图DAG,带有权重的最短路径问题可以用Dijkstra算法来求解。具体参见Understanding Dijkstra Algorithm

Floyd

Bellman Ford

Bellman Ford算法能处理负权重,这是与其他算法不同之处。

SPFA

Shortest Path Faster Algorithm,SPFA,基于Bellman Ford优化出来的更快速的算法。SPFA is an optimization of Bellman Ford algorithm.

典型问题

题目 题解 说明
787. K 站中转内最便宜的航班 题解
1928. 规定时间内到达终点的最小花费 题解 787的变种
题解
题解

References

Comments