假设我们有一个称为A的整数数组和一个查询数组。对于第i个查询值= querys [i] [0]和index = querys [i] [1],我们将值添加到A [index]。然后,第i个查询的答案是A的偶数值之和。我们必须找到所有查询的答案。我们将找到一个数组,该数组应具有answer [i]作为第i个查询的答案。因此,如果数组类似于[1,2,3,4],而查询数组类似于[[1,0 ,, [-3,1],[-4,0],[2,3]],那么答案数组将类似于[8,6,2,4]。因此,首先数组是[1,2,3,4],然后在第一个查询之后,将A与0 [0]相加,然后数组将是[2,2,3,4],偶数值的和为2 + 2 + 4 =8。对于第二个查询,它将与A [1]加-3,则数组将为[2,-1,3,4],因此偶数之和2 + 4 = 6那样,我们得到数组[8,6,2,4]
为了解决这个问题,我们将遵循以下步骤-
定义一个名为res的数组以存储结果
和:= 0
对于A中的每个元素
如果我是偶数,那么sum:= sum + i
对于查询中的每个查询-
索引:= i [1]
val:= i [0]
如果A [index]是偶数,则sum:= sum – A [index]
A [index]:= A [index] + val
如果A [index]是偶数,则sum:= sum + A [index]
总和被附加到res
返回资源
让我们看下面的实现以更好地理解-
class Solution(object): def sumEvenAfterQueries(self, A, queries): result = [] sum = 0 for i in A: if i%2==0: sum+=i for i in queries: index = i[1] val = i[0] if A[index] % 2==0: sum-=A[index] A[index]+=val if A[index]%2==0: sum+=A[index] result.append(sum) return result ob1 = Solution()print(ob1.sumEvenAfterQueries([1,2,3,4], [[1,0],[-3,1],[-4,0],[2,3]]))
[1,2,3,4] [[1,0],[-3,1],[-4,0],[2,3]]
输出结果
[8,6,2,4]