zoukankan      html  css  js  c++  java
  • #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 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 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. 1 <= A.length <= 10000
    2. -10000 <= A[i] <= 10000
    3. 1 <= queries.length <= 10000
    4. -10000 <= queries[i][0] <= 10000
    5. 0 <= queries[i][1] < A.length

    代码:

    class Solution {
    public:
        vector<int> sumEvenAfterQueries(vector<int>& A, vector<vector<int>>& queries) {
            int na = A.size(), nq = queries.size();
            int sum = 0;
            vector<int> ans;
            for(int i = 0; i < na; i ++) {
                if(A[i] % 2 == 0) sum += A[i];
            }
            
            for(int i = 0; i < nq; i ++) {
                int pos = queries[i][1], val = queries[i][0];
                if(A[pos] % 2 == 0) {
                    if((A[pos] + val) % 2 == 0)
                        sum += val;
                    else sum -= A[pos];
                } else {
                    if((A[pos] + val) % 2 == 0)
                        sum += val + A[pos];
                }
                A[pos] += val;
                ans.push_back(sum);
            }
            return ans;
        }
    };
    

      

  • 相关阅读:
    Haskell Interactive Development in Emacs
    Access Java API in Groovy Script
    手工设置Eclipse文本编辑器的配色
    Color Theme of Emacs
    Gnucash的投资记录
    Special Forms and Syntax Sugars in Clojure
    Use w3m as Web Browser
    SSE指令集加速之 I420转BGR24
    【图像处理】 增加程序速度的方法
    TBB 入门笔记
  • 原文地址:https://www.cnblogs.com/zlrrrr/p/10711103.html
Copyright © 2011-2022 走看看