Python中查询后的偶数总数
假设我们有一个称为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]