743. 网络延迟时间

有 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.mzph.cn/news/24406.shtml

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

相关文章

JNI之Java实现蓝牙交互

蓝牙概述 蓝牙&#xff0c;是一种支持设备短距离通信&#xff08;一般10m内&#xff09;的无线电技术&#xff0c;能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间&#xff0c;通过蓝牙设备之间的无线通信实现数据传输&#xff0c;实现数据传输&#xf…

【计算机视觉|语音分离】期望在嘈杂环境中聆听:一个用于语音分离的不依赖于讲话者的“音频-视觉模型”

本系列博文为深度学习/计算机视觉论文笔记&#xff0c;转载请注明出处 标题&#xff1a;Looking to Listen at the Cocktail Party: A Speaker-Independent Audio-Visual Model for Speech Separation 链接&#xff1a;Looking to listen at the cocktail party: a speaker-in…

【网络工程】网络流量分析工具 Wireshark

文章目录 第一章&#xff1a;WireShark介绍第二章&#xff1a;WireShark应用第三章&#xff1a;Wireshark 实战 第一章&#xff1a;WireShark介绍 Wireshark (前身 Ethereal)&#xff1a;它是一个强大的网络包分析工具 ! 此工具主要是用来捕获网络数据包的&#xff0c;并且自动…

75 | Python数据分析篇—— Numpy模块随机数函数、缺失值处理和矩阵操作

文章目录 Numpy模块随机数函数、缺失值处理和矩阵操作1. 随机数函数1.1 `np.random.rand()`1.2 `np.random.randn()`1.3 `np.random.randint()`1.4 `np.random.choice()`2. 处理缺失值NaN和inf2.1 `np.isnan()`2.2 `np.isinf()`2.3 `np.nan_to_num()`3. 矩阵相关的操作3.1 矩阵…

C++中实现多线程的三种方式

目录 1 背景2 方法 1 背景 力扣1116题 打印零和奇偶数。 2 方法 方法1&#xff1a;原子操作 class ZeroEvenOdd { private:int n;atomic<int> flag 0; public:ZeroEvenOdd(int n) {this->n n;}// printNumber(x) outputs "x", where x is an integer.…

zookeeper --- 基础篇

一、zookeeper简介 1.1、什么是zookeeper zookeeper官网&#xff1a;https://zookeeper.apache.org/ 大数据生态系统里的很多组件的命名都是某种动物或者昆虫&#xff0c;他是用来管 Hadoop&#xff08;大象&#xff09;、Hive(蜜蜂)、Pig(小 猪)的管理员。顾名思义就是管理…

zabbix触发器标签提取监控项子字符串实现对应告警恢复

0 实验环境 zabbix 6.0 1 监控项 1.1 监控项设置 通过zabbix agent自定义监控项&#xff0c;读取某文件内容模拟日志/trap告警&#xff0c;测试获取触发器标签中提取子字符串功能&#xff0c;以及相同标签的触发器自动恢复功能。 1.2 手工运行 手动触发之后&#xff0c;模…

你来问我来答,ChatGPT对话软件测试!主题互动

你来问我来答&#xff0c;ChatGPT对话软件测试&#xff01; 大家好&#xff0c;我是聪明而有趣的ChatGPT。作为IT专家&#xff0c;我将竭尽全力为你解答技术问题&#xff0c;并提供适合各个级别人群理解的解决方案。无论你是初学者还是专业人士&#xff0c;我都会用智能、简单…

在centos7上使用非编译方式安装ffmpeg

很多在centos7上安装ffmpeg的教程都需要使用编译方式的安装&#xff1b;编译时间较长而且需要配置; 后来搜索到可以通过加载rpm 源的方式实现快速便捷操作 第一种方式&#xff1a; 首先需要安装yum源&#xff1a; yum install epel-release yum install -y https://mirrors.…

C++中结构体的构造函数

2023年8月5日&#xff0c;周六上午 在C中&#xff0c;结构体和类是非常相似的&#xff0c;它们都可以具有构造函数。 事实上&#xff0c;在C中&#xff0c;结构体和类之间的唯一区别就是默认的访问权限不同。 结构体可以有默认构造函数、带参数的构造函数、拷贝构造函数等&am…

echarts 图例组件legend配置

legend 图例组件展示不同系列的图表类型标记、颜色、和名称。可以通过点击来控制哪个系列不展示。对于饼图来说&#xff0c;控制哪个数据不展示。 $> echarts5.4.0简单画一个饼图作为示例,设置legend:{show:true}展示图例。 const options {legend: {show: true,},series…

Java List(列表)

List 是一个有序、可重复的集合&#xff0c;集合中每个元素都有其对应的顺序索引。List 集合允许使用重复元素&#xff0c;可以通过索引来访问指定位置的集合元素。List 集合默认按元素的添加顺序设置元素的索引&#xff0c;第一个添加到 List 集合中的元素的索引为 0&#xff…

ELK 企业级日志分析系统(ElasticSearch、Logstash 和 Kiabana 详解)

目录 一.ELK简介 1.1ELK的概述 1.2ELK的组成 1.2.1 ElasticSearch 1.2.2 Logstash 1.2.3 Kibana 1.2.4 小总结 1.3可以添加其他组件 1.4filebeat 结合 logstash 带来好处 1.5日志处理的步骤 二.Elasticsearch 2.1Elasticsearch概述 2.2Elasticsearch核心概念 2.2.1接近…

使用可视化docker浏览器,轻松实现分布式web自动化

01、前言 顺着docker的发展&#xff0c;很多测试的同学也已经在测试工作上使用docker作为环境基础去进行一些自动化测试&#xff0c;这篇文章主要讲述我们在docker中使用浏览器进行自动化测试如果可以实现可视化&#xff0c;同时可以对浏览器进行相关的操作。 02、开篇 首先…

【云原生】Docker中容器管理常用所有命令

1.docker 容器创建流程 2.容器运行本质 docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 创建容器基本选项&#xff1a;--name&#xff1a;为容器命名 -i&#xff1a;交互式创建容器 -d&#xff1a;后台创建容器 -t&#xff1a;为容器分配伪终端 Docker 容器存在的意义就是为…

机器学习笔记之优化算法(六)线搜索方法(步长角度;非精确搜索;Glodstein Condition)

机器学习笔记之优化算法——线搜索方法[步长角度&#xff0c;非精确搜索&#xff0c;Glodstein Condition] 引言回顾&#xff1a; Armijo Condition \text{Armijo Condition} Armijo Condition关于 Armijo Condition \text{Armijo Condition} Armijo Condition的弊端 Glodstein…

jenkins准备

回到目录 jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具&#xff0c;主要用于持续、自动的构建/测试软件项目、监控外部任务的运行。Jenkins用Java语言编写&#xff0c;可在Tomcat等流行的servlet容器中运行&#xff0c;也可独立运行。通常与版本管理工具(SCM)、构…

【设计模式】单例模式

什么是单例模式&#xff1f; 保证一个类仅有一个实例&#xff0c;并提供一个访问它的全局访问点 单例模式的应用场景 1.整个程序的运行中只允许有一个类的实例&#xff1b; 2.需要频繁实例化然后销毁的对象。 3.创建对象时耗时过多或者耗资源过多&#xff0c;但又经常用到…

如何在 Rust 中运行 Lua 程序

在Rust中&#xff0c;你可以使用rust-lua这个库来运行Lua程序。下面是一个简单的例子&#xff1a; 首先&#xff0c;将 rust-lua 添加到你的 Cargo.toml 文件中&#xff1a; [dependencies] rust-lua "0.36"然后&#xff0c;在你的Rust代码中&#xff0c;你可以使…

Framework入门02-应用进程

2-1 你知道应用进程是怎么启动的吗? (1) Linux下进程启动的方式 pidfork(),这个方法会返回2次。pid为0时在子进程执行&#xff0c;pid为子进程的进程id时&#xff0c;在父进程执行。若在子进程中&#xff0c;没有execve(path, argv, env)函数&#xff0c;则子进程共享父进程…