We have an array A
of integers, and an array queries
of queries.
For the i
-th query val = queries[i][0], index = queries[i][1]
, we add val to A[index]
. Then, the answer to the i
-th query is the sum of the even values of A
.
(Here, the given index = queries[i][1]
is a 0-based index, and each query permanently modifies the array A
.)
Return the answer to all queries. Your answer
array should have answer[i]
as the answer to the i
-th query.
有一个数组A,和一个query数组,每次query,会在数组A下标为query[i][1]的地方加上query[i][0],然后统计下偶数的和。
n2 可以每次query之后重新求一次偶数和
min(m,n)的方法是一开始就统计好偶数和,然后根据query的值和原始值的加和得到的数的奇偶来判断这个和应该加减多少。
value = query[i][0], index = query[i][1]
如果A[index] 是奇数,相加后的数变成偶数了,那就可以给加这个偶数否则就没有变化
如果A[index]是偶数,相加后的数还是偶数,那就加上这个value,否则减去A[index]
class Solution(object): def sumEvenAfterQueries(self, A, queries): """ :type A: List[int] :type queries: List[List[int]] :rtype: List[int] """ even_sum = 0 ans = [] for value in A: if value % 2 == 0: even_sum += value for query in queries: value = query[0] index = query[1] if A[index] % 2 == 0: if (A[index] + value) % 2 == 0: even_sum += value else: even_sum -= A[index] A[index] += value else: if (A[index] + value) % 2 == 0: even_sum += A[index] + value else: pass A[index] += value ans.append(even_sum) return ans