如果理解floyd是以k为中转点,比较 现有x到y的路径长度和 x到k加上k到y的路径长度 来更新答案,如下
for (k = 1; k <= n; k++) {
for (x = 1; x <= n; x++) {
for (y = 1; y <= n; y++) {
f[x][y] = min(f[x][y], f[x][k] + f[k][y]);
}
}
}
那为什么要把k的循环放在最外面?按理来说应该先找起点x、再找终点y、最后再找中转点啊k,这是不是有点反常识
可能我这个问题确实对于dalao有点sb,但是我的理解真的卡在这一步了,望dalao勿喷