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]