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

leetcode 743. Network Delay Time 网络延迟时间

Problem: 743. Network Delay Time 网络延迟时间

解题过程

堆优化迪杰特斯拉版本,Dijkstra方案,找到k到其他每个node的最短时间,然后求出所有node的最大时间,最大值(每个node的最小时间)

深度优先或者广度优先都可以做,但是环太多了

Code

using pr = pair<int, int>; class Solution { public: // int mx = INT_MIN; int dis[101], start, nn; unordered_map<int, int> ump; void dfs(vector<vector<pair<int, int>>>& tr, int k, int cnt, int pre) { // mx = max(mx, cnt); // status[k] = true; dis[k] = min(dis[k], cnt); int key = (k * 10000) + pre; if( ump.find(key) != ump.end() && ump[key] >= 300*nn) { return; } ump[key]++; if(k==4) { int ww = 0; } for(int i = 0; i < tr[k].size(); i++) { // if(status[tr[k][i].first]==false) { if(tr[k][i].first == start) continue; dfs(tr, tr[k][i].first, cnt + tr[k][i].second, k); // } } } int networkDelayTime(vector<vector<int>>& times, int n, int k) { vector<vector<pair<int, int>>> tr(n+1); nn = n; for(int i = 0; i < times.size(); i++) { tr[times[i][0]].push_back({times[i][1], times[i][2]}); } // for(int i = 1; i <= n; i++) { // sort(tr[i].begin(), tr[i].end(), [](pair<int, int>& a, pair<int, int>&c) { // return a.second < c.second; // }); // } vector<int> disdis(n+1, INT_MAX); vector<bool> status(n+1, false); disdis[k] = 0; priority_queue<pr, vector<pr>, greater<pr>> pq; pq.push({0, k}); int dest, distance, next, nextD; while(!pq.empty()) { pr pai = pq.top(); distance = pai.first; dest = pai.second; pq.pop(); if(status[dest]) continue; status[dest] = true; for(int i = 0; i < tr[dest].size(); i++) { next = tr[dest][i].first; nextD = tr[dest][i].second; if(status[next]==false && disdis[next] > distance + nextD) { disdis[next] = distance + nextD; pq.push({disdis[next], next}); } } } // start = k; // fill(dis, dis+101, INT_MAX); // dfs(tr, k, 0, -1); int mx = INT_MIN; for(int i = 1; i <= n; i++) { mx = max(disdis[i], mx); } if(mx==INT_MAX) return -1; return mx; // vector<bool> status(n+1, false); // queue<pair<int,int>> qe; // qe.push({k, 0}); // int mimi = INT_MAX; // while(!qe.empty()) { // int sz = qe.size(); // int mx = INT_MIN; // for(int i = 0; i < sz; i++) { // int ll = qe.front().first; // int d = qe.front().second; // mx = max(d, mx); // status[ll] = true; // for(int j = 0; j < tr[ll].size(); j++) { // // if(status[tr[ll][j].first]==false) { // qe.push({tr[ll][j].first, tr[ll][j].second + d}); // // } // } // qe.pop(); // } // bool ret = true; // for(int i = 1; i < status.size(); i++) { // if(status[i]==false) { // ret = false; // break; // } // } // if(ret) { // mimi = min(mimi, mx); // } // } // for(int i = 1; i < status.size(); i++) { // if(status[i]==false) return -1; // } // return mimi; } };
http://www.cnnetsun.cn/news/51528.html

相关文章:

  • leetcode 744. Find Smallest Letter Greater Than Target 寻找比目标字母大的最小字母-耗时100%
  • Home Assistant通知系统:3步打造智能家居提醒中心
  • 学Simulink——机器人轨迹跟踪场景实例:基于Simulink的永磁同步电机笛卡尔空间圆弧轨迹跟踪仿真
  • 【毕业设计/课程设计】基于Java的高校学科竞赛平台的设计与实现/源码+论文+PPT+数据
  • java计算机毕业设计摄影爱好者交流平台 基于SpringBoot的影像作品分享与互动社区 摄影圈层社交与作品点评一体化平台
  • “AI 写的论文,参考文献靠谱吗?”—— 虎贲等考 AI 给出答案:所有参考文献均来自知网、维普,全程可查、合规可溯
  • 2025年AI降重工具深度评测:10款零风险智能改写方案(askpaper与aibiiye实测)
  • java计算机毕业设计社团管理系统 高校学生社团数字化运营平台 校园社团协同管理与活动发布系统
  • 缩短启动时间的定制支持成为采用关键——持续选用Silex希来科无线模块逾十年~
  • NAT技术和链路层概述
  • 数据库约束
  • Blender主题定制终极指南:如何快速打造个性化界面
  • 【无标题】web第三周
  • Holo1.5开源:小模型颠覆UI智能交互,企业级AI代理成本骤降80%
  • 如何快速掌握umy-ui:面向Vue开发者的终极性能优化指南
  • 【流程】——若依项目前后端打包发布到服务器
  • Velero压缩引擎深度解析:从架构原理到实战调优
  • DolphinScheduler 2025技术生态:从零开始掌握分布式调度系统
  • 5大WebGPU错误终极解决方案:让WebLLM硬件加速不再失败
  • 一步成图革命:OpenAI一致性模型如何重塑2025生成式AI生态
  • GDevelop游戏引擎终极指南:从零基础到专业开发全流程
  • 生成对抗网络创建测试数据
  • java计算机毕业设计社区医疗服务管理系统 街区智慧健康服务管理平台 基层医疗信息综合管理系统
  • S7-1500TF + S210 绝对齿轮同步:双轴梯形图程序解析
  • 中望CAD2026:消除图纸中的重线
  • Docker实战:创建和使用Docker私有仓库
  • K8S-EFK日志收集实战指南
  • 外贸流程管理系统
  • 200万token上下文能力,并且越用越聪明!Google Research重构AI长期记忆
  • Flutter + OpenHarmony 国际化与无障碍(i18n a11y)深度实践:打造真正包容的鸿蒙应用