方法1:直接法,遍历queries数组,每次遍历更新一次A,求出偶数和,放入answer中
class Solution {
public int[] sumEvenAfterQueries(int[] A, int[][] queries) {
//1.遍历查询数组,每次查询都要更新A
//2.结果输入到answer
int[] answer=new int[queries.length];
for(int i=0;i<queries.length;i++){
int[] temp=queries[i];
int val=temp[0];
int index=temp[1];
A[index]=A[index]+val;
int ou=oushuhe(A);
answer[i]=ou;
}
return answer;
}
public int oushuhe(int[] A){
int num=0;
for(int i=0;i<A.length;i++){
if(A[i]%2==0){
num=num+A[i];
}
}
return num;
}
}
方法2:先求出偶数和,因为偶数+偶数=偶数,偶数+奇数=奇数,所以每次遍历queries时候,先看更新前位置的奇偶性,奇数不改变偶数和,偶数减去这个值,然后更新他,继续看他的奇偶,如果是偶数,偶数和加上他放入answer中,遍历结束,流程结束
class Solution {
public int[] sumEvenAfterQueries(int[] A, int[][] queries) {
//1.遍历查询数组,每次查询都要更新A
//2.结果输入到answer
int[] answer=new int[queries.length];
for(int i=0;i<queries.length;i++){
int[] temp=queries[i];
int val=temp[0];
int index=temp[1];
A[index]=A[index]+val;
int ou=oushuhe(A);
answer[i]=ou;
}
return answer;
}
public int oushuhe(int[] A){
int num=0;
for(int i=0;i<A.length;i++){
if(A[i]%2==0){
num=num+A[i];
}
}
return num;
}
}