约 10 分钟
为什么 k 要在最外层?因为 d[i][j] 的含义是“只允许经过编号 ≤k 的点做中转时的最短路”。每加入一个新中转点 k,就用“i 到 k”接“k 到 j”去更新所有点对,逐层放开中转集合,最终得到全局最短路。
d[i][j]
Floyd 中把 k 放在内层循环会有什么问题?
登录 后可看答案