Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
更新0094.城市间货物运输I.md Java版本解法
  • Loading branch information
learnerInTheFirstStage committed Aug 7, 2024
commit 00405e519283b681daca6bb0f9dc5d292c1cc9ab
57 changes: 57 additions & 0 deletions problems/kamacoder/0094.城市间货物运输I.md
Original file line number Diff line number Diff line change
Expand Up @@ -392,6 +392,63 @@ Bellman_ford 是可以计算 负权值的单源最短路算法。
## 其他语言版本

### Java
```Java
public class Main {

// Define an inner class Edge
static class Edge {
int from;
int to;
int val;
public Edge(int from, int to, int val) {
this.from = from;
this.to = to;
this.val = val;
}
}

public static void main(String[] args) {
// Input processing
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
List<Edge> edges = new ArrayList<>();

for (int i = 0; i < m; i++) {
int from = sc.nextInt();
int to = sc.nextInt();
int val = sc.nextInt();
edges.add(new Edge(from, to, val));
}

// Represents the minimum distance from the current node to the original node
int[] minDist = new int[n + 1];

// Initialize the minDist array
Arrays.fill(minDist, Integer.MAX_VALUE);
minDist[1] = 0;

// Starts the loop to relax all edges n - 1 times to update minDist array
for (int i = 1; i < n; i++) {

for (Edge edge : edges) {
// Updates the minDist array
if (minDist[edge.from] != Integer.MAX_VALUE && (minDist[edge.from] + edge.val) < minDist[edge.to]) {
minDist[edge.to] = minDist[edge.from] + edge.val;
}
}
}

// Outcome printing
if (minDist[n] == Integer.MAX_VALUE) {
System.out.println("unconnected");
} else {
System.out.println(minDist[n]);
}
}
}

```

### Python

Expand Down