Sum of Even Numbers After Queries
给一个数组和一堆query, 然后算数组中偶数的和. 分情况讨论
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
class Solution { public int[] sumEvenAfterQueries(int[] A, int[][] queries) { int[] res = new int[queries.length]; int tmp = 0; for(int a : A){ if(a % 2 == 0) tmp += a; } int d = 0; for(int[] q : queries) { int v = q[0]; // add value int i = q[1]; // add value's index int c = A[i]; // current value if((c + v) % 2 == 0) { // if new value is even if(c % 2 == 0) { // if current is even, tmp += v; // just add value to current value } else { // if current is odd tmp += c+v; // add sum } } else { // important: if new value is odd if(c % 2 == 0) { // and current is even tmp -= c; // need to remove current from tmp sum } } res[d++] = tmp; A[i] += v; } return res; } } |