Shortest Path
Floyd Warshall
package graph;
import com.sun.tools.doclets.formats.html.SourceToHTMLConverter;
import java.util.*;
public class floyd_warshall {
private void fw(int v, int[][] edges){
int inf = (int)1e8;
// init distance matrix
int[][] matrix = new int[v][v];
for(int i=0; i<v; i++){
for(int j=0; j<v; j++){
if(i==j) matrix[i][j]=0;
else matrix[i][j] = inf;
}
}
// read the edge to matrix
for(int[] e: edges){
matrix[e[0]][e[1]] = e[2];
}
// Floyd Warshall Algo
for(int k=0; k<v; k++){
for(int i=0; i<v; i++){
for(int j=0; j<v; j++){
if(matrix[i][j] > matrix[i][k] + matrix[k][j]){
matrix[i][j] = matrix[i][k] + matrix[k][j];
}
}
}
}
// print matrix
StringBuilder sb = new StringBuilder();
for(int[] row: matrix){
for(int n: row){
sb.append(n).append(",");
}
sb.append("\n");
}
System.out.println(sb.toString());
}
public static void main(String[] args) {
floyd_warshall f = new floyd_warshall();
int[][] e = new int[][]{
{0,1,2},
{0,2,6},
{0,3,4},
{1,2,3},
{2,0,7},
{2,3,1},
{3,0,5},
{3,2,12}
};
f.fw(4, e);
}
}Dijkstra
787. Cheapest Flights Within K Stops
1102. Path With Maximum Minimum Value
778. Swim in Rising Water
Last updated