华为OD机试统一考试D卷C卷 - 电脑病毒感染

OD统一考试(C卷)

分值: 100分

题解: Java

题目描述:

一个局域网内有很多台电脑,分别标注为0 - N-1的数字。相连接的电脑距离不一样,所以感染时间不一样,感染时间用t表示。其中网络内一个电脑被病毒感染,其感染网络内所有的电脑需要最少需要多长时间。如果最后有电脑不会感染,则返回-1给定一个数组times表示一个电脑把相邻电脑感染所用的时间。如图:path[i]= {i,j, t} 表示电脑i->j 电脑i上的病毒感染j,需要时间t。输入描述:

432 1 12 3 13 4 12

输出描述:

2

补充说明:

第一个参数:局域网内电脑个数N 1<=N<=200;第二个参数:总共多少条网络连接第三个 1 2 1 表示1->2时间为1第七行:表示病毒最开始所在的电脑号1

示例1

输入:

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

输出:

2

import java.util.*;
 
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
 
        int computer_nums = Integer.parseInt(scanner.nextLine().trim());
        int link_nums = Integer.parseInt(scanner.nextLine().trim());
        Map<Integer, List<int[]>> network = new HashMap<>();
 
        for (int item = 0; item < link_nums; item++) {
            String line = scanner.nextLine().trim();
            String[] values = line.split(" ");
            int i = Integer.parseInt(values[0]);
            int j = Integer.parseInt(values[1]);
            int k = Integer.parseInt(values[2]);
 
            if (network.cont

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

华为OD机试刷题 文章被收录于专栏

华为OD机试刷题记录机考算法题库,帮助你上岸华为。提供C++/Java、JavaScript、Python四种语言的解法。

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务