class Solution:
def shortestDistanceAfterQueries(self,n:int,queries:List[List[int]])->List[int]:
ans = list()
G = [list() for _ in range(n)]
for i in range(n-1):
G[i].append(i + 1)
def bfs()->int:
q = list()
q.append(0)
dist = 0
visited = [0] * n
while q:
size = len(q)
for _ in range(size):
point = q.pop()
if n == point + 1:
return dist
for i in G[point]:
if not visited[i]:
visited[i] = 1
q.insert(0,i)
dist += 1
return dist
for edge in queries:
G[edge[0]].append(edge[1])
dist = bfs()
ans.append(dist)
return ans
关于#lc-3243#的问题,请各位专家解答!
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
阿里嘎多学长 2025-04-03 10:53关注阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程
解答
LC3243是LeetCode上的一个问题,题目是:给定一个长度为n的数组arr和一个查询数组queries,queries中每个元素是一个数组,包含两个元素:index和val。index是arr中的一个索引,val是要将arr[index]加上val的值。
问题是:对于每个查询,返回将arr[index]加上val后的最短距离。
下面是Python的解答代码:
class Solution: def shortestDistanceAfterQueries(self, arr: List[int], queries: List[List[int]]) -> List[int]: res = [] for index, val in queries: arr[index] += val res.append(min(arr)) return res解答思路是:对于每个查询,我们将arr[index]加上val的值,然后将arr中的最小值返回。
注意:这里的min(arr)返回的是arr中的最小值,而不是arr[index]的最小值。
解决 无用评论 打赏 举报