Skip to content

Commit 00405e5

Browse files
更新0094.城市间货物运输I.md Java版本解法
1 parent 8d3d4ce commit 00405e5

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed

problems/kamacoder/0094.城市间货物运输I.md

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -392,6 +392,63 @@ Bellman_ford 是可以计算 负权值的单源最短路算法。
392392
## 其他语言版本
393393

394394
### Java
395+
```Java
396+
public class Main {
397+
398+
// Define an inner class Edge
399+
static class Edge {
400+
int from;
401+
int to;
402+
int val;
403+
public Edge(int from, int to, int val) {
404+
this.from = from;
405+
this.to = to;
406+
this.val = val;
407+
}
408+
}
409+
410+
public static void main(String[] args) {
411+
// Input processing
412+
Scanner sc = new Scanner(System.in);
413+
int n = sc.nextInt();
414+
int m = sc.nextInt();
415+
List<Edge> edges = new ArrayList<>();
416+
417+
for (int i = 0; i < m; i++) {
418+
int from = sc.nextInt();
419+
int to = sc.nextInt();
420+
int val = sc.nextInt();
421+
edges.add(new Edge(from, to, val));
422+
}
423+
424+
// Represents the minimum distance from the current node to the original node
425+
int[] minDist = new int[n + 1];
426+
427+
// Initialize the minDist array
428+
Arrays.fill(minDist, Integer.MAX_VALUE);
429+
minDist[1] = 0;
430+
431+
// Starts the loop to relax all edges n - 1 times to update minDist array
432+
for (int i = 1; i < n; i++) {
433+
434+
for (Edge edge : edges) {
435+
// Updates the minDist array
436+
if (minDist[edge.from] != Integer.MAX_VALUE && (minDist[edge.from] + edge.val) < minDist[edge.to]) {
437+
minDist[edge.to] = minDist[edge.from] + edge.val;
438+
}
439+
}
440+
}
441+
442+
// Outcome printing
443+
if (minDist[n] == Integer.MAX_VALUE) {
444+
System.out.println("unconnected");
445+
} else {
446+
System.out.println(minDist[n]);
447+
}
448+
}
449+
}
450+
451+
```
395452

396453
### Python
397454

0 commit comments

Comments
 (0)