我也给两个全A参考。 第一题: public static void main(String[] args) { Scanner in = new Scanner(System.in); long[][] cityAndDis = new long[6][6]; for (int i = 0; i < 6; i++) { for (int j = 0; j < 6; j++) { int x = in.nextInt(); if (x == -1) cityAndDis[i][j] = Integer.MAX_VALUE; else cityAndDis[i][j] = x; } } int start = 0; long[] ans = Dijkstra(cityAndDis, start); for (int i = 1; i < 6; i++) { System.out.println(ans[i]); } } private static long[] Dijkstra(long[][] cityAndDis, int start) { long[] city = new long[cityAndDis.length]; long[] ans = new long[cityAndDis.length]; city[start] = 1; ans[start] = 0; for (int i = 1; i < cityAndDis.length; i++) { long min = Long.MAX_VALUE; int k = 0; for (int j = 0; j < cityAndDis.length; j++) { if (city[j] == 0 && cityAndDis[start][j] < min) { k = j; min = cityAndDis[start][j]; } } city[k] = 1; ans[k] = min; for (int j = 0; j < cityAndDis.length; j++) { if (city[j] == 0 && cityAndDis[k][j] + cityAndDis[start][k] < cityAndDis[start][j]) { cityAndDis[start][j] = cityAndDis[k][j] + cityAndDis[start][k]; } } } return ans; }
点赞 评论

相关推荐

挥毫自在:想白嫖你呢
点赞 评论 收藏
分享
10-09 17:17
已编辑
门头沟学院 Java
活泼的代码渣渣在泡池...:同学你好,我也是学院本,后天要面这个亚信科技,是实习,请问问题都啥样呀,我项目就做了网上的,这是第一次面试
投递多益网络等公司10个岗位
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务