关注
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[][] times = new int[6][6];
for (int i = 0; i < 6; i++) {
for (int j = 0; j < 6; j++) {
times[i][j] = sc.nextInt();
if (times[i][j] == -1) {
times[i][j] = Integer.MAX_VALUE;
}
}
}
int[] dist = distence(times);
for (int i = 1; i < 6; i++) {
System.out.println(dist[i]);
}
}
public static int[] distence(int[][] times) {
int maxTime = Integer.MAX_VALUE;
int N = 6;
int[] dist = new int[N];
boolean[] isVisited = new boolean[N];
for (int i = 0; i < N; i++) {
dist[i] = times[0][i];
}
isVisited[0] = true;
for (int i = 0; i < N; i++) {
int min = maxTime;
int k = 0;
for (int j = 0; j < N; j++) {
if (!isVisited[j] && dist[j] < min) {
min = dist[j];
k = j;
}
}
isVisited[k] = true;
for (int j = 0; j < N; j++) {
if (!isVisited[j] && times[k][j] != maxTime) {
if (dist[j] >= times[k][j] + dist[k]) {
dist[j] = times[k][j] + dist[k];
}
}
}
}
return dist;
}
} ac了,按回忆写的,有些可能有问题,但是大概思路就是这个
查看原帖
点赞 2
相关推荐
点赞 评论 收藏
转发
点赞 评论 收藏
转发
牛客热帖
正在热议
# 牛客帮帮团来啦!有问必答 #
364045次浏览 7427人参与
# 晒一晒我的offer #
2778080次浏览 49575人参与
# 非技术岗薪资爆料 #
5706次浏览 122人参与
# 华为求职进展汇总 #
435149次浏览 4369人参与
# 第一次面试 #
14419次浏览 227人参与
# 你更愿意参加线上面试还是线下面试? #
5522次浏览 83人参与
# 简历中的项目经历要怎么写 #
375718次浏览 6324人参与
# 应届生应该先就业还是先择业 #
11149次浏览 109人参与
# 除了offer,现在你还缺点啥? #
2295次浏览 47人参与
# 机械人怎么评价今年的华为 #
50740次浏览 414人参与
# 找工作,你会甘心进小厂还是猛冲大厂 #
22357次浏览 214人参与
# 来聊聊机械薪资天花板是哪家 #
19270次浏览 155人参与
# 通信硬件薪资爆料 #
139962次浏览 1019人参与
# 如何确定求职岗位 #
101471次浏览 2404人参与
# 谈薪时HR压价该怎么应对 #
32441次浏览 201人参与
# 百度工作体验 #
19084次浏览 208人参与
# 应届生初入职场,求建议 #
21343次浏览 528人参与
# 海信求职进展汇总 #
6845次浏览 91人参与
# 实习工作,你找得还顺利吗? #
5173次浏览 79人参与
# 租房前辈的忠告 #
19975次浏览 1586人参与