[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] <= 10000
- 1 <= queries.length <= 10000
- -10000 <= queries[i][0] <= 10000
- 0 <= 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] ... 
随机推荐
- VirtualBox内Linux系统怎样与Windows共享文件夹
			Windows本机用虚拟机安装Linux系统(前提其他已配置好) 1. 双击无法安装,需要在扩展里添加:管理->全局设定->扩展 ->添加 或者 打开虚拟机进入Ubuntu系统,首先 ... 
- Ubuntu14.04安装 ROS  安装步骤和问题总结
			参考: 1.http://wiki.ros.org/indigo/Installation/Ubuntu 2.安装出现依赖库问题: https://answers.ros.org/question/3 ... 
- JAVA的DES加密解密在windows上测试一切正常,在linux上异常
			windows上加解密正常,linux上加密正常,解密时发生 如下异常,异常信息如下: [ERROR] 2018-10-15 09:30:35,998 method:com.iscas.ippc.co ... 
- day3-三级目录
			date = {"guangdong":{"guangzhou":{"tianhe":["tyx","zjxc ... 
- Access denied when I try to install profiler
			I had the same issue and used the diagtool to find more information. The traces showed this error me ... 
- docker 搭建 hustoj
			docker 搭建 hustoj hustoj 是个GPL开源的OJ,其提供了docker形式的安装方式. 为执行方便,选择使用aliyun提供的docker镜像来加速安装. 拉取镜像 docker ... 
- [STM32F103]外部中断
			① 初始化IO口为输入. GPIO_Init(); ② 开启IO口复用时钟. RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); ③ 设置IO口与中 ... 
- Java进程&线程(整理)
			Java进程&线程 程序:程序员写的代码,就是代码,不运行好像不会发生什么: 进程:一个进程可以理解为"运行的"一个程序,当我们启动一个java程序后,对应的jvm就会创建 ... 
- java——collection总结
			Collection 来源于Java.util包,是非常实用常用的数据结构!!!!!字面意思就是容器.具体的继承实现关系如下图,先整体有个印象,再依次介绍各个部分的方法,注意事项,以及应用场景. ... 
- 【Python学习】Python3 环境搭建
			参考地址:http://www.runoob.com/python3/python3-install.html Python3 环境搭建 本章节我们将向大家介绍如何在本地搭建 Python3 开发环境 ... 
