Skip to content

Instantly share code, notes, and snippets.

@dluciano
Last active September 21, 2022 07:21
Show Gist options
  • Save dluciano/32c092445cedfc8faf71e55b87fec219 to your computer and use it in GitHub Desktop.
Save dluciano/32c092445cedfc8faf71e55b87fec219 to your computer and use it in GitHub Desktop.
985. Sum of Even Numbers After Queries
public class Solution {
public int[] SumEvenAfterQueries(int[] nums, int[][] queries) {
var res = new int[nums.Length];
var evenSum = 0;
for(var j = 0; j < nums.Length; ++j){
res[j] = nums[j];
if(nums[j] % 2 == 0)
evenSum += nums[j];
}
var i = 0;
foreach(var query in queries){
var num = nums[query[1]];
nums[query[1]] += query[0];
if(num % 2 == 0 && nums[query[1]] % 2 == 0){
evenSum -= num;
evenSum += nums[query[1]];
}
else if(num % 2 != 0 && nums[query[1]] % 2 == 0)
evenSum += nums[query[1]];
else if(num % 2 == 0 && nums[query[1]] % 2 != 0)
evenSum -= num;
res[i++] = evenSum;
}
return res;
}
public int[] SumEvenAfterQueriesBruteForce(int[] nums, int[][] queries) {
var res = new int[nums.Length];
for(var j = 0; j < nums.Length; ++j)
res[j] = nums[j];
var i = 0;
foreach(var query in queries){
nums[query[1]] += query[0];
var evenSum = 0;
for(var j = 0; j < nums.Length; j++)
if(nums[j] % 2 == 0)
evenSum += nums[j];
res[i++] = evenSum;
}
return res;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment