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]]

輸出

[8,6,2,4]

更新於: 2020年4月28日

3K+ 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.