当前位置:   article > 正文

华为OD机试C卷-- 电脑病毒感染(Java & JS & Python & C)

华为OD机试C卷-- 电脑病毒感染(Java & JS & Python & C)

获取题库不需要订阅专栏,可直接私信我进入CSDN领军人物top1博主的华为OD交流圈观看完整题库、最新面试实况、考试报告等内容以及大佬一对一答疑。
题目描述
一个局域网内有很多台电脑,分别标注为 0 ~ N-1 的数字。相连接的电脑距离不一样,所以感染时间不一样,感染时间用 t 表示。

其中网络内一台电脑被病毒感染,求其感染网络内所有的电脑最少需要多长时间。如果最后有电脑不会感染,则返回-1。

给定一个数组 times 表示一台电脑把相邻电脑感染所用的时间。

如图:path[i] = {i, j, t} 表示:电脑 i->j,电脑 i 上的病毒感染 j,需要时间 t。

输入描述

4
3
2 1 1
2 3 1
3 4 1
2

输出描述

2

题目解析
该问题是一个典型的图论问题,具体来说是寻找有向图中的最短路径问题,但与经典的最短路径问题(如Dijkstra算法或Floyd-Warshall算法)不同,这里的重点在于找到从一个源点出发,使得所有节点都被感染的最短时间。由于每台电脑只能单向感染其他电脑,我们可以使用拓扑排序结合宽度优先搜索(BFS)来解决此问题。

Java算法源码

import
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/769024
    推荐阅读
    相关标签
      

    闽ICP备14008679号