Python 中查询后偶数的和


假设我们有一个名为 A 的整数数组和一个查询数组。对于第 i 个查询,value = queries[i][0] 和 index = queries[i][1],我们将 value 添加到 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],然后在第一个查询之后,将 1 加到 A[0] 中,然后数组将变为 [2,2,3,4],偶数值之和为 2 + 2 + 4 = 8。对于第二个查询,它将 -3 加到 A[1] 中,然后数组将变为 [2,-1,3,4],因此偶数之和为 2 + 4 = 6。像这样,我们得到了数组 [8,6,2,4]

为了解决这个问题,我们将遵循以下步骤 -

  • 定义一个名为 res 的数组来存储结果
  • sum := 0
  • 对于 A 中的每个元素 i
    • 如果 i 为偶数,则 sum := sum + i
  • 对于查询中的每个查询 i -
    • index := i[1]
    • val := i[0]
    • 如果 A[index] 为偶数,则 sum := sum – A[index]
    • A[index] := A[index] + val
    • 如果 A[index] 为偶数,则 sum := sum + A[index]
    • sum 附加到 res 中
  • 返回 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]]

Learn Python in-depth with real-world projects through our Python certification course. Enroll and become a certified expert to boost your career.

输出

[8,6,2,4]

更新于: 2020年4月28日

3K+ 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告