题解 | 【模板】单源最短路1

【模板】单源最短路1

https://www.nowcoder.com/practice/f24504c9ff544f7c808f76693cc34af8

import sys
import heapq
n,m = map(int,input().split())
graph = [[] for _ in range(5001)]
for _ in range(m):
    u,v = map(int,input().split())
    graph[u].append(v)
    graph[v].append(u)

# 第二种方法
# 每次只辐射一个点,将待辐射点加入栈
visited = set()
curr = [(0,1)]
heapq.heapify(curr)
while curr:
    dist,node = heapq.heappop(curr)
    if node == n:
        print(dist)
        sys.exit()
    
    for neighbor in graph[node]:
        if neighbor not in visited:
            visited.add(neighbor)
            heapq.heappush(curr,(dist+1,neighbor))
print(-1)

全部评论

相关推荐

06-12 16:00
天津大学 Java
牛客30236098...:腾讯坏事做尽,终面挂是最破防的 上次被挂了后我连简历都不刷了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务