import java.util.List;
/*
* @lc app=leetcode.cn id=985 lang=java
*
* [985] 令牌放置
*
* https://leetcode-cn.com/problems/sum-of-even-numbers-after-queries/description/
*
* algorithms
* Easy (67.55%)
* Total Accepted: 1.8K
* Total Submissions: 2.7K
* Testcase Example: '[1,2,3,4]\n[[1,0],[-3,1],[-4,0],[2,3]]'
*
* 给出一个整数数组 A 和一个查询数组 queries。
*
* 对于第 i 次查询,有 val = queries[i][0], index = queries[i][1],我们会把 val 加到 A[index]
* 上。然后,第 i 次查询的答案是 A 中偶数值的和。
*
* (此处给定的 index = queries[i][1] 是从 0 开始的索引,每次查询都会永久修改数组 A。)
*
* 返回所有查询的答案。你的答案应当以数组 answer 给出,answer[i] 为第 i 次查询的答案。
*
*
*
* 示例:
*
* 输入:A = [1,2,3,4], queries = [[1,0],[-3,1],[-4,0],[2,3]]
* 输出:[8,6,2,4]
* 解释:
* 开始时,数组为 [1,2,3,4]。
* 将 1 加到 A[0] 上之后,数组为 [2,2,3,4],偶数值之和为 2 + 2 + 4 = 8。
* 将 -3 加到 A[1] 上之后,数组为 [2,-1,3,4],偶数值之和为 2 + 4 = 6。
* 将 -4 加到 A[0] 上之后,数组为 [-2,-1,3,4],偶数值之和为 -2 + 4 = 2。
* 将 2 加到 A[3] 上之后,数组为 [-2,-1,3,6],偶数值之和为 -2 + 6 = 4。
*
*
*
*
* 提示:
*
*
* 1 <= A.length <= 10000
* -10000 <= A[i] <= 10000
* 1 <= queries.length <= 10000
* -10000 <= queries[i][0] <= 10000
* 0 <= queries[i][1] < A.length
*
*
*/
class Solution {
public static int[] sumEvenAfterQueries(int[] A, int[][] queries) {
List<Integer> list = new ArrayList<Integer>();
if (A == null || A.length==0) {
return null;
}
if (queries != null && queries.length>0) {
for (int i=0;i<queries.length;i++) {
int[] temp = queries[i];
int value = temp[0];
int index = temp[1];
int a_val = A[index];
int sum = value+a_val;
A[index] = sum;//修改数组中的值
//循环处理A数组
int _sum = 0;
for (int _i=0;_i<A.length;_i++) {
int num = A[_i];
if ((Math.abs(num))%2 == 0) {
_sum+=num;
}
}
list.add(_sum);
}
}
return returnResult(list);
}
//封装返回的结果
public static int[] returnResult(List<Integer> list){
//首先边界判断
if (list.size() == 0 || list == null) {
return null;
}
int [] result = new int[list.size()];
for (int i=0;i<list.size();i++) {
result[i] = list.get(i);
}
return result;
}
}