华为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%内容,订阅专栏后可继续查看/也可单篇购买
机试E卷D卷刷题日记 文章被收录于专栏
机试刷题记录