当前位置: 首页 > news >正文

最短路径-Dijkstra及其堆优化版本

743. 网络延迟时间 - 力扣(LeetCode)

朴素版本:O n2复杂度,邻接矩阵建图

class Solution {
public:int networkDelayTime(vector<vector<int>>& times, int n, int k) {vector<int>vis(n,0),dist(n,INT_MAX/2);vector<vector<int>>graph(n,vector<int>(n,INT_MAX/2));for(int i=0;i<times.size();i++)graph[times[i][0]-1][times[i][1]-1]=times[i][2];dist[k-1]=0;for(int i=0;i<n;i++){int x=-1;for(int y=0;y<n;y++)if(!vis[y]&&(x==-1||dist[y]<dist[x]))x=y;vis[x]=1;for(int y=0;y<n;y++)dist[y]=min(dist[y],dist[x]+graph[x][y]);}int res=-1;for(int i=0;i<n;i++)res=max(res,dist[i]);return res==INT_MAX/2?-1:res;}
};

堆优化:O(mlogm),邻接表建图

class Solution {
public:int networkDelayTime(vector<vector<int>>& times, int n, int k) {vector<vector<pair<int, int>>> g(n); // 邻接表for (auto& t : times) {g[t[0] - 1].emplace_back(t[1] - 1, t[2]);}vector<int> dis(n, INT_MAX);dis[k - 1] = 0;priority_queue<pair<int, int>, vector<pair<int, int>>, greater<>> pq;pq.emplace(0, k - 1);while (!pq.empty()) {auto [dx, x] = pq.top();pq.pop();if (dx > dis[x]) { // x 之前出堆过continue;}for (auto &[y, d] : g[x]) {int new_dis = dx + d;if (new_dis < dis[y]) {dis[y] = new_dis; // 更新 x 的邻居的最短路pq.emplace(new_dis, y);}}}int mx = ranges::max(dis);return mx < INT_MAX ? mx : -1;}
};

http://www.xdnf.cn/news/350155.html

相关文章:

  • 指纹浏览器技术解析:从原理到实战的多账号管理解决方案
  • 数据清洗(ETL/ELT)原理与工具选择指南:企业数字化转型的核心引擎
  • 常用 svg ICON
  • FreeRTOS如何检测内存泄漏
  • Linux操作系统中的通知机制 - 监控文件事件 inotify
  • 印度股票市场API对接文档
  • 麒麟信安举办特种行业核心代理商中级技术认证培训班
  • 【计网】TCP/IP四层模型(一)
  • [硬件电路-18]:MCU - LPC1765FBD100是恩智浦(NXP)半导体推出的一款基于ARM Cortex-M3内核的高性能32位微控制器
  • 如果说开启的TIM3定时器有ccr1,ccr2,ccr3,我想要关闭ccr2的PWM输出,怎么通过代码实现
  • AI优化高频PCB信号完整性:猎板PCB的技术突破与应用实践
  • 多环串级PID
  • 主场景 工具栏 植物卡牌的渲染
  • 从“看不见”到“一目了然”:网络流量分析与监控大屏
  • 手撕基于AMQP协议的简易消息队列-6(服务端模块的编写)
  • 云计算运维
  • vue实现半圆转盘旋转(门户网页上)
  • 企业级UI测试的“双保险”:TestComplete的智能对象识别与详细报告功能
  • 二叉搜索树的插入操作(递归遍历)
  • 力扣-142.环形链表II
  • 引文索引数据库在科研中的应用
  • 问题 | 低空经济未来发展前景机遇及挑战
  • BFS算法的学习
  • 腾讯云:数字世界的“量子熔炉”与硅基文明引擎​
  • 数据结构-堆排序
  • Houdini 深圳实操交流会!即将开幕
  • 代码随想录第39天:单调栈
  • VBA经典应用69例应用8:利用VBA,完成自动运行任务的预设
  • xiaopiu原型设计工具笔记
  • Windows 环境变量完全指南:系统变量、用户变量与 PATH 详解