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
posted @ 2020-11-23 11:15  老鼠司令  阅读(62)  评论(0)    收藏  举报