
图论
文章平均质量分 54
追光者2020
没有实力的愤怒毫无意义。
展开
-
LeetCode 787. K 站中转内最便宜的航班 (Bellman-Ford算法)
题目描述 有 n 个城市通过一些航班连接。给你一个数组 flights ,其中 flights[i] = [fromi, toi, pricei] ,表示该航班都从城市 fromi 开始,以价格 pricei 抵达 toi。现在给定所有的城市和航班,以及出发城市 src 和目的地 dst,你的任务是找到出一条最多经过 k 站中转的路线,使得从 src 到 dst 的 价格最便宜 ,并返回该价格。 如果不存在这样的路线,则输出 -1。 示例 1: 输入: n = 3, edges = [[0,1,100],原创 2021-09-07 08:51:48 · 748 阅读 · 0 评论 -
LeetCode 207 课程表(拓扑排序)LeetCode 210 课程表Ⅱ
题目描述 你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] = [ai, bi] ,表示如果要学习课程 ai 则 必须 先学习课程 bi 。 例如,先修课程对 [0, 1] 表示:想要学习课程 0 ,你需要先完成课程 1 。请你判断是否可能完成所有课程的学习?如果可以,返回 true ;否则,返回 false 。 示例 1: 输入:n原创 2021-06-13 16:11:07 · 193 阅读 · 0 评论 -
单源点最短路(dijkstra)
题目描述 在一个有向无环图中,已知每条边长,求出1到n的最短路径,返回1到n的最短路径值。如果1无法到n,输出-1 示例1 输入 5,5,[[1,2,2],[1,4,5],[2,3,3],[3,5,4],[4,5,5]] 返回值 9 备注: 两个整数n和m,表示图的顶点数和边数。一个二维数组,一维3个数据,表示顶点到另外一个顶点的边长度是多少。每条边的长度范围[0,1000]。注意数据中可能有重边 题解: 自环在朴素版dijkstra算法中是没有任何影响的,所以自环的权值是多少都可以,只要不是负数就行。原创 2021-05-07 19:00:12 · 619 阅读 · 0 评论 -
最小生成树
题目描述 一个有n户人家的村庄,有m条路连接着。村里现在要修路,每条路都有一个代价,现在请你帮忙计算下,最少需要花费多少的代价,就能让这n户人家连接起来。 示例1 输入 3,3,[[1,3,3],[1,2,1],[2,3,1]] 返回值 2 题解:题目中的vector中是由多个列表组成,每个列表只有三个元素,分别表示边的起点,边的终点以及边的权重信息。 使用kruskal算法来实现本题目。算法原理大致如下, 将所有边的全权重信息排序,时间复杂度为O(mlogm) m:边数 枚举每条边a,b,及其权原创 2021-05-03 20:42:57 · 975 阅读 · 0 评论