跳到主要内容

3243.新增道路查询后的最短距离I

链接:3243.新增道路查询后的最短距离I
难度:Medium
标签:广度优先搜索、图、数组
简介:返回一个数组 answer,对于范围 [0, queries.length - 1] 中的每个 i,answer[i] 是处理完前 i + 1 个查询后,从城市 0 到城市 n - 1 的最短路径的长度。

题解 1 - python

  • 编辑时间:2024-11-19
  • 执行用时:421ms
  • 内存消耗:16.93MB
  • 编程语言:python
  • 解法介绍:bfs
class Solution:
def shortestDistanceAfterQueries(self, n: int, queries: List[List[int]]) -> List[int]:
res = []
next = [[i + 1] for i in range(n - 1)]
for v1, v2 in queries:
next[v1].append(v2)
q = deque([0])
used = set([0])
size = 1
step = 0
while q:
node = q.popleft()
if node == n - 1:
res.append(step)
break
for child in next[node]:
if child not in used:
used.add(child)
q.append(child)
size -= 1
if size == 0:
size = len(q)
step += 1
return res