LeetCode #985. Sum of Even Numbers After Queries
题目
985. Sum of Even Numbers After Queries
解题方法
遍历数组A求得所有偶数和evensum,然后遍历queries数组更新数组A、偶数和evensum和返回值rat,这里有一个巧妙的方法,可以先从evensum中减去当前即将被更改的值,更改此值后再根据是否为偶数将其加到evensum中。
时间复杂度:O(N+Q)
空间复杂度:O(Q)
N == len(A), Q == len(queries)
代码
class Solution:
def sumEvenAfterQueries(self, A: List[int], queries: List[List[int]]) -> List[int]:
evensum = 0
for i in A:
if not i % 2:
evensum += i
rat = []
for i in queries:
curnum = A[i[1]]
A[i[1]] += i[0]
if not curnum % 2:
if not A[i[1]] % 2:
evensum += i[0]
else:
evensum -= curnum
else:
if not A[i[1]] % 2:
evensum += A[i[1]]
else:
pass
rat.append(evensum)
return rat

浙公网安备 33010602011771号