关注
import java.util.ArrayList;import java.util.LinkedList;import java.util.Scanner; public class Main { public static void main(String[] args) { new Main().solve(); } private void solve() {
Scanner scanner = new Scanner(System.in);
int n = 6;
int adj[][] = new int[n][n];
for (int i = 0; i < n; i++) {
String[] strings= scanner.nextLine().split(" ");
for (int j = 0; j < n; j++) {
adj[i][j] =Integer.valueOf(strings[j]);
}
}
Graph graph = new Graph(adj);
graph.bfs(0);
}
static class Graph {
int[][] adj;
int nVerts;
boolean[] visited;
private Graph(int[][] adj) {
this.adj = adj;
this.nVerts = adj.length;
this.visited = new boolean[nVerts];
}
private void bfs(int start) {
int[] dis=new int[nVerts];
for (int i = 0; i < nVerts; i++) {
dis[i]=Integer.MAX_VALUE;
}
visited[start] = true;
LinkedList<Integer> queue = new LinkedList<>();
queue.add(start);
dis[start]=0;
while (!queue.isEmpty()) {
int v = queue.remove();
ArrayList<Integer> vs;
vs =getNextVertex(v);
for (Integer v1:vs){
int distance=adj[v][v1];
if (distance+dis[v]<dis[v1])
dis[v1]=distance+dis[v];
if (!visited[v1]) {
queue.add(v1);
visited[v1] = true;
}
}
}
for (int i = 0; i <nVerts; i++) {
if (i!=0){
System.out.println(dis[i]);
}
}
}
private ArrayList<Integer> getNextVertex(int v) {
ArrayList<Integer> adjVs = new ArrayList<>();
for (int i = 0; i < adj.length; i++) {
if (i!=v&&adj[v][i] != -1)
adjVs.add(i);
}
return adjVs;
}
}}
查看原帖
点赞 1
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 如果春招能重来,我会___ #
3780次浏览 40人参与
# 想做Agent可以做哪些岗位? #
1871次浏览 23人参与
# 联宝杯大学生创新大赛,你的技术值得产业级答案 #
42404次浏览 496人参与
# 这个offer值得去吗? #
1526次浏览 22人参与
# 面试官拷打AI项目都会问什么? #
1547次浏览 80人参与
# 除了线上,还能去哪些地方投简历 #
2838次浏览 30人参与
# 你觉得最好用的AI编程工具是_ #
756次浏览 23人参与
# mt对你说过最有启发的一句话 #
115039次浏览 870人参与
# 你会因为行情,降低找工作标准吗? #
6910次浏览 77人参与
# 如何排解工作中的焦虑 #
324667次浏览 2791人参与
# 工作两年想退休了 #
272179次浏览 2057人参与
# 银行笔面经互助 #
195701次浏览 1324人参与
# 双非本科的出路是什么? #
230648次浏览 1657人参与
# 你的第一家实习公司是什么档次? #
73317次浏览 342人参与
# 你和你的mentor相处模式是__ #
5406次浏览 43人参与
# 你的mentor是什么样的人? #
61519次浏览 795人参与
# 科大讯飞求职进展汇总 #
384193次浏览 3069人参与
# 实习第一天,你在干什么 #
3338次浏览 23人参与
# 哪些公司在招寒假实习? #
95370次浏览 768人参与
# 秋招投递记录 #
416970次浏览 3283人参与
# 如果公司降薪,你会跳槽吗? #
160827次浏览 950人参与
查看3道真题和解析