743. 网络延迟时间

news2024/9/23 23:31:34

有 n 个网络节点,标记为 1 到 n

给你一个列表 times,表示信号经过 有向 边的传递时间。 times[i] = (ui, vi, wi),其中 ui 是源节点,vi 是目标节点, wi 是一个信号从源节点传递到目标节点的时间。

现在,从某个节点 K 发出一个信号。需要多久才能使所有节点都收到信号?如果不能使所有节点收到信号,返回 -1 。

示例 1:

输入:times = [[2,1,1],[2,3,1],[3,4,1]], n = 4, k = 2
输出:2

示例 2:

输入:times = [[1,2,1]], n = 2, k = 1
输出:1

示例 3:

输入:times = [[1,2,1]], n = 2, k = 2
输出:-1

提示:

  • 1 <= k <= n <= 100
  • 1 <= times.length <= 6000
  • times[i].length == 3
  • 1 <= ui, vi <= n
  • ui != vi
  • 0 <= wi <= 100
  • 所有 (ui, vi) 对都 互不相同(即,不含重复边)

 

 

int networkDelayTime(vector<vector<int>>& times, int n, int k)
{
    vector< vector<int>>Vec(n+1,vector<int>(n+1, INT32_MAX/2));
    vector<int>vec(n + 1, INT32_MAX/2);
    vector<int>visited(n + 1, false);
    
    for (int i = 0; i < times.size(); i++)
    {
        int m = times[i][0];
        int n= times[i][1];
        int k = times[i][2];
        Vec[m][n] = k;
    }
    vec[k] = 0;

//找最小值
    for (int i = 1; i < n+1; i++)
    {
        int m = 1;
        int tmp = INT32_MAX / 2;
        for (int j = 1; j < n + 1; j++)
        {
            if (true == visited[j])
            {
                continue;
            }
            if ( tmp > vec[j]) 
            {
                m = j;
                tmp = vec[j];
            }

        }

//确定节点,不用再次访问
        visited[m] = true; 

//找最小值到其他节点距离
        for (int j = 0; j < n + 1; j++)
        {
            vec[j] = vec[j]>vec[m] + Vec[m][j] ? vec[m] + Vec[m][j] : vec[j];
        }
    }

//找最大时间的

    int count = 0;
    int ret = INT32_MIN;
    for (int i = 1; i < vec.size(); i++)
    {
        if (vec[i] == INT32_MAX/2)
        {
            continue;
        }
        count++;
        if (vec[i] > ret)
        {
            ret = vec[i];
        }
    }
    if (count == n)
    {
        return ret;
    }
    else
    {
        return -1;
    }

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/834007.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

iMX6ULL驱动开发 | OLED显示屏SPI驱动实现(SH1106,ssd1306)

周日业余时间太无聊&#xff0c;又不喜欢玩游戏&#xff0c;大家的兴趣爱好都是啥&#xff1f;我觉得敲代码也是一种兴趣爱好。正巧手边有一块儿0.96寸的OLED显示屏&#xff0c;一直在吃灰&#xff0c;何不把玩一把&#xff1f;于是说干就干&#xff0c;最后在我的imax6ul的lin…

泛微最近的漏洞利用工具

WeaverExploit_All 0x01 介绍 泛微最近的漏洞利用工具&#xff08;PS&#xff1a;2023&#xff09; 集成了QVD-2023-5012、CVE-2023-2523、CVE-2023-2648、getloginid_ofsLogin 漏洞利用 新增&#xff1a;WorkflowServiceXml 内存马注入、uploaderOperate文件上传漏洞、Del…

go-zero超强工具goctl的常用命令api,rpc,model及其构建的服务解析

goctl api 详情移步&#xff1a; go-zero的路由机制解析 基于go-zero的api服务刨析并对比与gin的区别 goctl rpc goctl支持多种rpc&#xff0c;较为流行的是google开源的grpc&#xff0c;这里主要介绍goctl rpc protoc的代码生成与使用。 protoc是grpc的命令&#xff0c;作用…

SpringBoot的pom文件、容器、组件

一、pom文件 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4…

springboot-mybatis的增删改查

目录 一、准备工作 二、常用配置 三、尝试 四、增删改查 1、增加 2、删除 3、修改 4、查询 五、XML的映射方法 一、准备工作 实施前的准备工作&#xff1a; 准备数据库表 创建一个新的springboot工程&#xff0c;选择引入对应的起步依赖&#xff08;mybatis、mysql驱动…

基于springboot的课程作业管理系统【附开题|ppt|万字文档(LW)和搭建文档】

主要功能 学生登录&#xff1a; ①首页、个人中心&#xff1a;修改密码、个人信息管理等 ②公告信息管理、课程信息管理、学生选课管理、作业布置管理、作业提交管理、作业评分管理、课程评价管理、课程资源管理 教师登录&#xff1a; ①首页、个人中心&#xff1a;修改密码、…

操作系统专栏4-网络专题from小林coding

网络专题 文件传输mmapwritesend file大文件传输过程 文件传输 传统的文件传输过程 在这个过程中发生了4次用户态与内核态之间的切换,4次数据拷贝分别是 read系统调用陷入内核,read完成返回write调用陷入内核,write返回 4次数据拷贝分别是 磁盘->内核缓冲区->用户缓冲…

改进正弦算法引导的蜣螂优化算法(MSADBO)

概述 蜣螂优化算法由于其寻优速度和收敛精度&#xff0c;自2023年问世以来&#xff0c;热度一直很高。本篇文章对蜣螂算法进行改进&#xff0c;改进思路是参考2023年6月25号发表在知网的一篇文献&#xff08;文献放在了文章末尾&#xff09;。 改进的蜣螂优化算法融合了改进的正…

Redis 变慢了 解决方案

一、Redis为什么变慢了 1.Redis真的变慢了吗&#xff1f; 对 Redis 进行基准性能测试 例如&#xff0c;我的机器配置比较低&#xff0c;当延迟为 2ms 时&#xff0c;我就认为 Redis 变慢了&#xff0c;但是如果你的硬件配置比较高&#xff0c;那么在你的运行环境下&#xff…

Cloud Keys Delphi Edition Crack

Cloud Keys Delphi Edition Crack 云密钥使基于云的密钥和秘密管理与任何支持的平台或开发技术轻松集成。这些易于使用的组件可用于与流行的云密钥管理提供商安全集成&#xff0c;如Amazon KMS、Amazon AWS Secrets、Azure key Vault、Google cloud KMS和Google Secret Manager…

自动化测试工具在软件测试中扮演了重要的角色

随着软件开发行业的发展和变革&#xff0c;软件测试变得愈发重要。在传统的软件测试过程中&#xff0c;测试人员需要手动执行测试用例&#xff0c;耗费大量时间和资源。然而&#xff0c;随着自动化测试工具的出现&#xff0c;软件测试的效率和质量得到了极大的提升。 自动化测试…

用Python自制软件,看视频畅通无阻

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 一个账号只能登录一台设备&#xff1f;涨价就涨价&#xff0c;至少还能借借朋友的&#xff0c;谁还没几个朋友&#xff0c;搞限制登录这一出&#xff0c;瞬间不稀罕了 这个年头谁还不会点技术了&#xff0c;直接拿python自制一…

Excel中——日期列后添加星期

需求&#xff1a;在日期列中添加星期几&#xff1f; 第一步&#xff1a;打开需要添加星期的Excel文件&#xff0c;在日期后面添加日期 第二步&#xff1a;选择日期列&#xff0c;点击鼠标右键&#xff0c;在下拉列表中&#xff0c;选择“设置单元格格式” 第三步&#xff1a; 在…

Miniled透明屏:超薄、轻便,还有哪些特点?

Miniled透明屏是一种新型的显示屏技术&#xff0c;它采用了微小的LED灯珠作为显示单元&#xff0c;通过透明的材料进行封装&#xff0c;使得整个屏幕具有透明的特性。Miniled透明屏具有以下几个特点&#xff1a; 首先&#xff0c;Miniled透明屏具有高亮度和高对比度的特点。 由…

TypeScript实战篇 - TS实战: 服务层开发-令牌

目录 接口说明 服务设计 WHY NOT Socket&#xff1f; huatian/svc【node.js 接口服务端】 huatian-svc/package.json huatian-svc/tsconfig.json huatian-svc/src/main.ts huatian-svc/nodemon.json huatian-svc/src/context/AccountContext.ts huatian-svc/src/repo…

软件测试面试真题 | 什么是PO设计模式?

面试官问&#xff1a;UI自动化测试中有使用过设计模式吗&#xff1f;了解什么是PO设计模式吗&#xff1f; 考察点 《page object 设计模式》&#xff1a;PageObject设计模式的设计思想、设计原则 《web自动化测试实战》&#xff1a;结合PageObject在真实项目中的实践与应用情…

活动目录密码更改

定期更改密码是一种健康的习惯&#xff0c;因为它有助于阻止使用被盗凭据的网络攻击&#xff0c;安全专家建议管理员应确保用户使用有效的密码过期策略更改其密码。 管理员可以通过电子邮件通知用户在密码即将过期时更改其密码&#xff0c;但在许多组织中&#xff0c;用户只能…

举个栗子!Tableau 技巧(256):灵活折叠文本表的多级数据行

通常&#xff0c;Tableau 默认的图表分层结构是统一打开或关上&#xff0c;有什么办法可以按需选择展开或折叠&#xff1f;如下示例&#xff1a;单击“”展开层级&#xff0c;单击“-“收起层级。 可以试试集操作&#xff01;今天的栗子&#xff0c;就来分享具体实现方法吧~ 本…

解读Spring的context:property-placeholder

在spring中&#xff0c;如果要给程序定义一些参数&#xff0c;可以放在application.properties中&#xff0c;通过<context:property-placeholder>加载这个属性文件&#xff0c;然后就可以通过value给我们的变量自动赋值&#xff0c;如果你们的程序可能运行在多个环境中&…

什么是头脑风暴法,有哪些原则?

1. 什么是头脑风暴法&#xff1f; 头脑风暴法&#xff08;Brainstorming&#xff09;是一种用于创造性思维和问题解决的方法。它旨在通过集体讨论和思维碰撞&#xff0c;激发团队成员的创造力和想象力&#xff0c;从而产生新的创意和解决方案。 在头脑风暴会议中&#xff…