# 985. Sum of Even Numbers After Queries

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.

Example 1:

``````Input: A = [1,2,3,4], queries = [[1,0],[-3,1],[-4,0],[2,3]]
Output: [8,6,2,4]
Explanation:
At the beginning, the array is [1,2,3,4].
After adding 1 to A[0], the array is [2,2,3,4], and the sum of even values is 2 + 2 + 4 = 8.
After adding -3 to A[1], the array is [2,-1,3,4], and the sum of even values is 2 + 4 = 6.
After adding -4 to A[0], the array is [-2,-1,3,4], and the sum of even values is -2 + 4 = 2.
After adding 2 to A[3], the array is [-2,-1,3,6], and the sum of even values is -2 + 6 = 4.
``````

Note:

1. `1 <= A.length <= 10000`
2. `-10000 <= A[i] <= 10000`
3. `1 <= queries.length <= 10000`
4. `-10000 <= queries[i][0] <= 10000`
5. `0 <= queries[i][1] < A.length`

``````class Solution {
public:
vector<int> sumEvenAfterQueries(vector<int>& A, vector<vector<int>>& queries) {
vector<int> res;
int n = A.size(), even = 0;
for (int num : A) {
if (num % 2 == 0) even += num;
}
for (auto &query : queries) {
int old = A[query[1]], cur = old + query[0];
if (old % 2 == 0) even -= old;
if (cur % 2 == 0) even += cur;
A[query[1]] = cur;
res.push_back(even);
}
return res;
}
};
``````

Github 同步地址:

https://github.com/grandyang/leetcode/issues/985

https://leetcode.com/problems/sum-of-even-numbers-after-queries/

https://leetcode.com/problems/sum-of-even-numbers-after-queries/discuss/231098/C%2B%2B-O(n)-track-even-sum

https://leetcode.com/problems/sum-of-even-numbers-after-queries/discuss/231099/JavaPython-3-odd-even-analysis-time-O(max(m-n))

LeetCode All in One 题目讲解汇总(持续更新中…)

 微信打赏 Venmo 打赏
（欢迎加入博主的知识星球，博主将及时答疑解惑，并分享刷题经验与总结，试运营期间前五十位可享受半价优惠～）

×

Help us with donation