码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • LeetCode每日一题(985. Sum of Even Numbers After Queries)


    You are given an integer array nums and an array queries where queries[i] = [vali, indexi].

    For each query i, first, apply nums[indexi] = nums[indexi] + vali, then print the sum of the even values of nums.

    Return an integer array answer where answer[i] is the answer to the ith query.

    Example 1:

    Input: nums = [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 nums[0], the array is [2,2,3,4], and the sum of even values is 2 + 2 + 4 = 8.
    After adding -3 to nums[1], the array is [2,-1,3,4], and the sum of even values is 2 + 4 = 6.
    After adding -4 to nums[0], the array is [-2,-1,3,4], and the sum of even values is -2 + 4 = 2.
    After adding 2 to nums[3], the array is [-2,-1,3,6], and the sum of even values is -2 + 6 = 4.

    Example 2:

    Input: nums = [1], queries = [[4,0]]
    Output: [0]

    Constraints:

    • 1 <= nums.length <= 104
    • -104 <= nums[i] <= 104
    • 1 <= queries.length <= 104
    • -104 <= vali <= 104
    • 0 <= indexi < nums.length

    考虑 4 种情况:

    1. nums[i]原来是偶数, 加上 val 之后还是偶数, 这样偶数的和增加了 val
    2. nums[i]原来是偶数, 加上 val 之后变成奇数, 这样偶数的和减少了 nums[i]
    3. nums[i]原来是奇数, 加上 val 之后变成偶数, 这样偶数的和增加了 nums[i] + val
    4. nums[i]原来是奇数, 加上 val 之后还是奇数, 这样偶数的和没有任何变化

    impl Solution {
        pub fn sum_even_after_queries(mut nums: Vec<i32>, queries: Vec<Vec<i32>>) -> Vec<i32> {
            let mut sum = nums.iter().filter(|v| *v % 2 == 0).map(|v| *v).sum();
            let mut ans = Vec::new();
            for q in queries {
                let curr = nums[q[1] as usize];
                if curr % 2 == 0 {
                    if (curr + q[0]) % 2 == 0 {
                        sum += q[0];
                    } else {
                        sum -= curr;
                    }
                } else {
                    if (curr + q[0]) % 2 == 0 {
                        sum += curr + q[0];
                    }
                }
                nums[q[1] as usize] += q[0];
                ans.push(sum);
            }
            ans
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
  • 相关阅读:
    transformer代码pytorch版本,来源于哔哩哔哩的网课学习笔记
    正则表达式高阶(二)
    OLED之U8g2中文库使用
    【数据结构】双向链表(C语言)
    知识蒸馏 | YOLOv7知识蒸馏实战篇 | 2/2*
    Python 爬取 "王者荣耀.英雄壁纸" 过程中的矛和盾
    五、递归的快速入门
    使用格式化工具处理U盘等,出现the disk is write-protected 或者 设备繁忙 的解决方法
    R语言使用table1包绘制(生成)三线表、使用双变量分列构建三线表、双变量分列三线表、自定义调换双变量的顺序从不同角度分析查看
    git查询和设置用户名及邮箱
  • 原文地址:https://blog.csdn.net/wangjun861205/article/details/125447241
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号