宇宙无敌飞天遁地大木木 2025-04-03 10:53 采纳率: 32.5%
浏览 7
已结题

关于#lc-3243#的问题,请各位专家解答!


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
  • 写回答

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]的最小值。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月3日
  • 创建了问题 4月3日