3244.新增道路查询后的最短距离II
链接:3244.新增道路查询后的最短距离II
难度:Hard
标签:贪心、图、数组、有序集合
简介:返返回一个数组 answer,对于范围 [0, queries.length - 1] 中的每个 i,answer[i] 是处理完前 i + 1 个查询后,从城市 0 到城市 n - 1 的最短路径的长度。
题解 1 - python
- 编辑时间:2024-11-20
- 执行用时:79ms
- 内存消耗:44.22MB
- 编程语言:python
- 解法介绍:贪心,考虑到不会交叉的路径,尽可能选择新连接的路径即可
class Solution:
def shortestDistanceAfterQueries(self, n: int, queries: List[List[int]]) -> List[int]:
res = []
arr = [i + 1 for i in range(n)]
cur = n - 1
for n1, n2 in queries:
if 0 < arr[n1] < n2:
v = 0
walker = n1
while walker != n2:
v += 1
arr[walker], walker = 0, arr[walker]
cur -= v - 1
arr[n1] = n2
res.append(cur)
return res