您的位置:首页 > 游戏 > 游戏 > 济南建设工程有限公司_温州企业自助建站系统_百度竞价排名又叫什么_百度竞价推广流程

济南建设工程有限公司_温州企业自助建站系统_百度竞价排名又叫什么_百度竞价推广流程

2025/3/3 4:24:52 来源:https://blog.csdn.net/Pisasama/article/details/145946717  浏览:    关键词:济南建设工程有限公司_温州企业自助建站系统_百度竞价排名又叫什么_百度竞价推广流程
济南建设工程有限公司_温州企业自助建站系统_百度竞价排名又叫什么_百度竞价推广流程

力扣2642. 设计可以求最短路径的图类

题目

在这里插入图片描述

题目解析及思路

题目要求对于每一组询问都返回node1到node2的最小距离

floyd将每对顶点的距离都求出来,当addedge时再更新所有可能被更新的距离

代码

class Graph {//邻接表vector<vector<int>> f;const int INF = INT_MAX / 3;
public:Graph(int n, vector<vector<int>>& edges) {f.resize(n,vector<int>(n,INF));//自己到自己是0for(int i=0;i<n;i++){f[i][i] = 0;}for(auto e : edges){f[e[0]][e[1]] = e[2];}//floydfor(int k=0;k<n;k++){for(int i=0;i<n;i++){for(int j=0;j<n;j++){f[i][j] = min(f[i][j],f[i][k] + f[k][j]);}}}}void addEdge(vector<int> e) {int x = e[0],y = e[1],w = e[2],n = f.size();//说明不可能更新if(w >= f[x][y]){return;}//在x,y之间连边,任意i到j就多了一条路径:i->x->y->jfor(int i=0;i<n;i++){for(int j=0;j<n;j++){f[i][j] = min(f[i][j],f[i][x] + w + f[y][j]);}}}int shortestPath(int node1, int node2) {int ans = f[node1][node2];return ans < INF ? ans : -1;}
};

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com