题解 | 【模板】单源最短路1
【模板】单源最短路1
https://www.nowcoder.com/practice/f24504c9ff544f7c808f76693cc34af8
from collections import defaultdict
import heapq
n, m = map(int, input().split())
G = defaultdict(set)
for i in range(m):
u, v = map(int, input().split())
G[u].add((v, 1)) #w = 1
G[v].add((u, 1)) # w = 1
# print(G)
distances = {v: float("inf") for v in G}
# print(distances)
start = 1
distances[start] = 0
heap = [(0, start)]
heapq.heapify(heap)
while heap:
distance, node = heapq.heappop(heap)
# print(node)
if distance > distances[node]:
continue
for neighbor, weight in G[node]:
alt = distance + weight
if distances[neighbor] > alt:
distances[neighbor] = alt
heapq.heappush(heap, (alt, neighbor))
# print(distances)
t = distances[n] if n in distances else -1
print( -1 if t is float("inf") else t )
顺丰集团工作强度 373人发布