[Solution] 985. Sum of Even Numbers After Queries
- Difficulty: Easy
Question
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 the 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 <= A.length <= 10000-10000 <= A[i] <= 100001 <= queries.length <= 10000-10000 <= queries[i][0] <= 100000 <= queries[i][1] < A.length
Related Topics
Array
Solution
求出原数组中的偶数和
对于每一个查询,对于数组元素
A[queries[i][1]]的影响,按以下四种情况处理:- 之前为奇数,之后为奇数:无需操作;
- 之前为奇数,之后为偶数:在原偶数和的基础上加上这个新增的偶数;
- 之前为偶数,之后为奇数:在原偶数和的基础上去掉这个之前的偶数;
- 之前为偶数,之后为奇数:在原偶数和的基础上加上一个变化量(可能为正,也可能为负);
将每次查询得到的偶数和放入结果数组中即为所求。
public class Solution
{
public int[] SumEvenAfterQueries(int[] A, int[][] queries)
{
int[] ret = new int[queries.GetLength(0)];
int sum = (from x in A where x % 2 == 0 select x).Sum();
for(int i = 0; i < queries.GetLength(0); i++)
{
int before = A[queries[i][1]];
A[queries[i][1]] += queries[i][0];
if(before % 2 == 0)
{
if(A[queries[i][1]] % 2 == 0)
{
int delta = A[queries[i][1]] - before;
sum += delta;
}
else
{
sum -= before;
}
}
else
{
if(A[queries[i][1]] % 2 == 0)
{
sum += A[queries[i][1]];
}
else
{
// no operation
}
}
ret[i] = sum;
}
return ret;
}
}
[Solution] 985. Sum of Even Numbers After Queries的更多相关文章
- 【LEETCODE】47、985. Sum of Even Numbers After Queries
package y2019.Algorithm.array; /** * @ProjectName: cutter-point * @Package: y2019.Algorithm.array * ...
- 【Leetcode_easy】985. Sum of Even Numbers After Queries
problem 985. Sum of Even Numbers After Queries class Solution { public: vector<int> sumEvenAft ...
- 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] ...
- LeetCode 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 = queri ...
- #Leetcode# 985. Sum of Even Numbers After Queries
https://leetcode.com/problems/sum-of-even-numbers-after-queries/ We have an array A of integers, and ...
- LC 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] ...
- 【leetcode】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 = quer ...
- 【LeetCode】985. Sum of Even Numbers After Queries 解题报告(C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 暴力 找规律 日期 题目地址:https://lee ...
- [Swift]LeetCode985. 查询后的偶数和 | 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] ...
随机推荐
- 京东饭粒捡漏V1.15
20181105 更新 V1.151.部分BUG修复: 功能介绍1.京东商城专用,支持饭粒模式下单,自己获得京豆返利 2.捡漏模式:帮助用户监控抢购商品,有库存的时候进行抢单,主要是通过添加商品ID ...
- 面向对象版Tab栏切换
<div class="wrapper" id="wrapper"> <ul class="tab" id="t ...
- day3-三级目录
date = {"guangdong":{"guangzhou":{"tianhe":["tyx","zjxc ...
- 【01】团饱和图:(一)EHM定理
团饱和图:(一)EHM定理 据A. Hajnal考证,术语"饱和性",即saturation,最早由前苏联数学家A. A. Zykov在1949年引入,用于研究线性复形,但是他的工 ...
- com.android.build.api.transformException报错的解决方法
最近遇到一个问题:工程需要依赖模块1和模块2,但是模块1和模块2都使用了opencv,但opencv的版本不同,如果同时依赖两个模块,就会报错重复定义...如果模块2依赖模块1,工程再依赖模块2,也会 ...
- Ubuntu下安装Snap
介绍 Snap是一个全新的软件包架构,它与其它包管理器的区别在于snap安装的app互相之间是高度隔离的,减少了互相引用. 避免了很多冲突问题. 不过这也导致了其占用的磁盘比较多. 安装 apt in ...
- codeblock 生成和使用makefile
下载cbp2make 文件名:cbp2make-stl-rev138.tar.gz 里面有个cbp文件用codeblock打开,编译,生成的bin目录下有个执行文件. 使用命令生成Makefile . ...
- 对map集合按照value从大到小进行排序
概述: 基本特点: 该集合存储键值对,而且要保证键的惟一性 子类: |--HashTable 底层是哈希数据表结构,不可以使用Null作为键或者值:该集合线程是同步的 |--hashMap 底层是 ...
- c# datatable 分组
DataTable dt = new DataTable(); IEnumerable<IGrouping<, ));//按行政区代码前两位分组
- Python全栈开发记录_第五篇(装饰器)
单独记录装饰器这个知识点是因为这个知识点是非常重要的,必须掌握的(代码大约150行). 了解装饰器之前要知道三个知识点 作用域,上一篇讲到过顺序是L->E->G->B 高阶函数: 满 ...