算法与数据结构基础 - 图(Graph)
图基础
图(Graph)应用广泛,程序中可用邻接表和邻接矩阵表示图。依据不同维度,图可以分为有向图/无向图、有权图/无权图、连通图/非连通图、循环图/非循环图,有向图中的顶点具有入度/出度的概念。
面对图相关问题,第一步是将问题转为用图表示(邻接表/邻接矩阵),二是使用图相关算法求解。
相关LeetCode题:
1042. Flower Planting With No Adjacent 题解
图的遍历(DFS/BFS)
图的遍历/搜索可使用DFS或BFS方法。DFS方法 可视化过程,BFS方法 可视化过程
相关LeetCode题:
802. Find Eventual Safe States 题解
1059. All Paths from Source Lead to Destination 题解
关于BFS,详见:算法与数据结构基础 - 广度优先搜索(BFS)
最短路径问题
BFS另可用于求解无权图的最短路径问题,相关LeetCode题:
对于有权图的单源最短路径问题,Dijkstra算法用于无负权边的问题求解 可视化过程,Bellman-Ford算法支持判断有无负权回路、若有则不存在最短路径。Floyd-Warshall是求解多源、无负权边的最短路径问题的算法 可视化过程
相关LeetCode题:
1129. Shortest Path with Alternating Colors 题解