gf202276 @ 2024-10-07 15:56:37
为什么要开vis数组?如果dis[v]>dis[u}+w,那就应该要使用来更新,如果已经vis过了就不可能进判断了呀?
by Gaoxing233 @ 2024-10-07 16:01:47
因为如果在之前满足了dis[v]>dis[u]+w,那么这个不是路径最短的点迟早会被队列弹出来,但此时dis[v]已经被更新,所以如果不开vis数组会导致重复遍历
by Gaoxing233 @ 2024-10-07 16:07:14
@gf202276
by gf202276 @ 2024-10-07 16:32:13
好,非常感谢(但这会让复杂度退化成什么样?)
by lby_commandBlock @ 2024-10-20 14:23:54
@gf202276