743. 网络延迟时间
vector一/二维数组的定义
C++求最值
迪杰斯特拉算法
//单源最短路径 //BFS单源最短路径适用于无权图 //对于带权图,可以用迪杰斯特拉算法或者Floyd算法求解 //网络延迟时间 #include<iostream> #include<string> #include<vector> #include<unordered_map> #include<queue> #include<algorithm> using namespace std; //Dijkstra算法 int networkDelayTime(vector<vector<int>>& times, int n, int k) { const int inf = INT_MAX / 2; //定义二位数组存储邻接矩阵 vector<vector<int>> g(n, vector<int>(n, inf)); //第一个n是一共n行,第二个vector<int>(n, //inf)中的n是n列,inf是[i,j]初始化为inf //初始化邻接矩阵 for (auto &t : times) { int i = t[0]-1, j = t[1]-1; g[i][j] = t[2]; } vector<int> dist(n, inf); //距离数组 dist[k - 1] = 0; //顶点k是起始顶点 vector<bool> used(n, false); //该顶点是否被初始化 for (int i = 0; i < n; i++) { //寻找最短路径 int x = -1; for (int j = 0; j < n; j++) { if (!used[j] && (x==-1 || dist[j] < dist[x])) { x = j; } } //更新x到其他点的距离 used[x] = true; for (int j = 0; j < n; j++) { dist[j] = min(dist[j], dist[x] + g[x][j]); } } //寻找最大值,即延迟时间最长 int result = *max_element(dist.begin(), dist.end()); return result == inf ? -1 : result; } int main() { vector<vector<int>> times; int a[3] = {1, 2, 3}; vector<int> v(a, a+3); times.push_back(v); int result = networkDelayTime(times, 2, 1); return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
2023-01-09 37、商品服务--概念区分---SPU&SKU&规格参数&销售属性
2023-01-09 39、商品服务--品牌管理--JSR303自定义校验注解
2023-01-09 38、商品服务--品牌管理--JSR303分组检验
2023-01-09 37、商品服务--品牌管理--统一异常处理
2023-01-09 36、商品服务--品牌管理--JSR303数据校验