leetcode 985. Sum of Even Numbers After Queries(query之后的偶数和)

【ArcGIS Engine二次开发】入门基础(2):ArcGIS开发方式(VBA、DLL、Add-in、Engine)对比 文章目录2.1 使用VBA进行桌面软件开发2.1.1 VBA开发方式2.1.1 VBA代码的安全性2.2 使用DLL进行桌面软件开发2.2.1 DLL开发方式2.2.2 DLL功能的应用部署2.3 使用Add-in进行桌面软件开发2.4 使用ArcGIS Engine构建独立应用程序 对于桌面GIS应用来说,ArcGIS平台不仅提供了用于开发独立运行的GIS应用软件的二次开发工包ArcGIS Engine,还提供了对ArcGIS Deskop桌面软件进行扩展的开发的话,在开发个具体的GIS 行业应用软件时 阅读详情

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.

有一个nums数组,每次query:[val, index]会产生nums[index] += val的效果。
最后要返回每次query之后nums中所有偶数的和。

思路:

每次只操作nums[index]一个数字,所以不需要每次都计算所有偶数的和,
刚开始的时候计算一次,后面每次就操作这一个数字。

这时候要分几种情况:
奇数是不会加到和里面去的,如果之前是奇数,现在是偶数,就要把现在的偶数加到和里面。
如果之前是偶数,现在是奇数,就要从现有的和里面减去之前的偶数,因为现在这个nums[index]不参与计算了。
之前是偶数,现在还是偶数,就加上差分的val部分即可。
之前奇数,现在还是奇数,都不参与计算,不需要处理。

所以这个思路整理成代码就是这样的。

public int[] sumEvenAfterQueries(int[] nums, int[][] queries) {
    int evenSum = 0;
    int[] res = new int[queries.length];
    int i = 0;
    
    for(int num : nums) {
        if(num % 2 == 0) evenSum += num;
    }
    
    for(int[] query : queries) {
        int val = query[0];
        int index = query[1];
        
        //previous odd, now even
        if(nums[index] % 2 != 0 && (nums[index]+val) % 2 == 0) evenSum += (nums[index] + val);
        //previous even, now even
        else if(nums[index] % 2 == 0 && (nums[index]+val) % 2 == 0) evenSum += val;
        //previous even, now odd
        else if(nums[index] % 2 == 0 && (nums[index]+val) % 2 != 0) evenSum -= nums[index];
        //previous odd, now odd
        //do nothing
        nums[index] += val;
        res[i++] = evenSum;
    }
    return res;
}

通过是能通过的,不过时间排名很靠后,
多次重复的计算nums[index] % 2 和 (nums[index]+val) % 2,
再整理一下,

需要处理的情况无非就是之前是(奇数,偶数),现在是(奇数,偶数)
之前是奇数时没参与计算,
之前是偶数时,把之前的偶数从和里减掉,就达到了“清零”操作。
然后看现在,
奇数不参与计算,
只需要看偶数的情况,偶数时把偶数加到和里面就好了。

同时,有个技巧,判断奇偶时,只需要判断最低的bit位是不是1.
不要忘了更新nums[index]。

public int[] sumEvenAfterQueries(int[] nums, int[][] queries) {
    int evenSum = 0;
    int[] res = new int[queries.length];
    int i = 0;
    
    for(int num : nums) {
        if(num % 2 == 0) evenSum += num;
    }
    
    for(int[] query : queries) {
        int val = query[0];
        int index = query[1];
        
        //previous even
        if((nums[index] & 1) == 0) evenSum -= nums[index];
        
        nums[index] += val;
        
        //now even
        if((nums[index] & 1) == 0) evenSum += nums[index];
        res[i++] = evenSum;
    }
    return res;
}
基于STM32L4XX的环境光传感器(VCNL4040M3OE)应用程序设计 • 集成模块:红外发射器(IRED)、环境光传感器(ALS)、接近传感器(PS)及信号调理IC。#define VCNL4040_I2C_ADDR (0x60 << 1) // 7位地址左移一位。// 组合成16位值。// I2C总线句柄。// 设置参数:ALS集成时间160ms,中断禁止,ALS功能开启。// 设置参数:PS工作频率80Hz,开红外二极管,PS功能开启。// 初始化I2C外设。• 输出类型:I2C总线(ALS/PS)// 2. 配置环境光传感器 (ALS) 并启动。 阅读详情

相关推荐

STM32H750实战:用TIM+DMA驱动ADC/DAC实现音频回环(附CubeMX配置避坑指南)

本文详细介绍了在STM32H750上构建高保真、低延迟音频链路的实战方法。通过配置TIM定时器作为硬件节拍器,精准触发ADC采集与DAC播放,并利用DMA实现数据的自动搬运,全程无需CPU干预。文章重点剖析了CubeMX配置中的关键步骤与常见“坑点”,如ADC的Conversion Data Management模式选择、DMA的FIFO与Burst模式配置,以及STM32H7系列必须开启ADC全局中断等,并提供了完整的代码实现与调试验证指南。

1057

leetcode 985. Sum of Even Numbers After Queries 查询后的偶数和-耗时100

Problem:耗时100%,首先累加偶数值,然后加入queries的值,若tmp=nums[ind]是偶数,加上val以后还是偶数,那么只需要加上val,若变成了奇数则需要减去tmp。若tmp=nums[ind]是奇数,加上val后变成偶数,那么需要加上tmp + val。

邹九的个人博客 97

图像去雨:超详细手把手写 pytorch 实现代码(带注释)

占个坑,过几天来写

书山有路,学海无涯! 1万+

LeetCode Hot 100 二叉树专题(二)3 题(Java)

本篇文章共 3 题:543. 二叉树的直径、102. 二叉树的层序遍历、108. 将有序数组转换为二叉搜索树。 每道题都统一按「① 题目分析 & 解题思路 → ② 常见解法(附代码)及讲解 → ③ 知识点总结」的顺序组织;代码使用 Java 编写,节点定义沿用 LeetCode 默认的 TreeNode。

2401_88612756的博客 352

FFmpeg魔改指南:让RTMP协议完美兼容H265的三种方法(含SRS适配技巧)

本文详细介绍了三种让RTMP协议兼容H265编码的FFmpeg魔改方案,包括基于官方补丁的标准改造、Intel的SVT-HEVC集成方案以及金山云的自定义扩展方案。文章重点解析了各方案的实现原理与适配技巧,并提供了在SRS 6.0服务器上进行深度配置和性能调优的完整实战指南,帮助开发者解决H265推流至传统RTMP服务器的兼容性问题。

weixin_29290947的博客 194

树莓派国内镜像源一键配置指南

本文提供树莓派国内镜像源一键配置指南,解决默认国外源访问缓慢问题。通过自动检测系统版本并支持清华、阿里云、中科大等主流镜像站选择,大幅提升软件更新与安装速度。包含详细的手动配置方法和常见问题排查,帮助用户快速完成树莓派换源优化。

tequila的博客 1373

LeetCode Hot 100 链表专题 三· 3 题(Java)

收录题目:2. 两数相加、19. 删除链表的倒数第 N 个结点、24. 两两交换链表中的节点。 统一结构:① 题目分析与解题思路 → ② 常见解法(附代码)及讲解 → ③ 知识点总结。 贯穿三题的两条主线:虚拟头结点 dummy(统一处理头结点被修改的场景)与 指针修改顺序(避免断链、丢引用)。

2401_88612756的博客 481

【ORB_SLAM系列4】—— 一文搞定如何在Ubuntu20.04中安装运行ORB_SLAM3(包含ROS版本和非ROS版本)

ORB-SLAM3是一款基于特征点的实时单目SLAM系统,是SLAM领域的研究热点之一。它的核心算法是结合了ORB特征点提取和描述子匹配、单目RGB相机的深度估计、运动估计和地图优化等步骤,能够在实时性和精度之间取得平衡,适用于各种环境下的定位和建图任务。在各种应用领域都有广泛的应用。本教程主要是介绍了关于在ubuntu20.04中运行ORB_SLAM3的所有依赖的库的安装过程,和所遇到的一些报错的解决方法。有什么问题,可以评论区里面交流讨论

2401_82458959的博客 5039

LeetCode 每日一题 2026/11/2-2026/11/8

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步

AlphaTao的博客 174

3大绝招!MySQL如何轻松搞定文本、图像和视频的多模态数据分析?

首先,让我们来了解一下“多模态”到底是什么意思。简单来说,多模态指的是能够同时处理不同类型数据(如文本、图像、音频等)的能力。传统的数据库往往只能专注于一种或几种特定类型的数据,比如关系型数据库主要处理结构化数据,而文档型数据库则更适合非结构化数据。但是现在,随着技术的进步,像MySQL这样的数据库也开始支持更加复杂的数据模型,允许我们在同一个系统内处理多种格式的数据。通过上述五个部分的详细介绍,相信你现在应该对如何利用MySQL进行多模态数据分析有了更清晰的认识。

java专栏 2114

【ComfyUI 基础教程】ComfyUI 局部重绘工作流教程

本篇指南将带你了解 ComfyUI 中的局部重绘工作流,并带你完成一个局部重绘的示例,以及遮罩编辑器的使用等。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 301

LeetCode 面试经典 150_多维动态规划_交错字符串(97_C++_中等)

LeetCode 面试经典 150_多维动态规划_交错字符串(97_C++_中等) 题目描述: 给定三个字符串 s1、s2、s3,请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的。 两个字符串 s 和 t 交错 的定义与过程如下,其中每个字符串都会被分割成若干 非空 子字符串: - s = s1 + s2 + ... + sn - t = t1 + t2 + ... + tm - |n - m| <= 1 - 交错 是 s1 + t

huayimenghan的博客 197

Docker安装并运行AnythingLLM的详细教程

通过本文的介绍,你已经掌握了如何在 CentOS 系统上使用 Docker 安装并运行 AnythingLLM。AnythingLLM 提供了强大的功能,支持本地知识库搭建和多模态输入,非常适合个人和企业使用。希望本文能帮助你快速上手并搭建自己的 AI 知识库。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 5837

LeetCode 1861. 旋转盒子|Go 双指针解法

j >= 0,如果写成j>0,会漏掉第 0 列,最左侧石头处理失败旋转矩阵行列互换:原 m 行 n 列 → 结果 n 行 m 列,make 数组长度不要写反旋转公式m-1-i:是原总行数 m,不是 n!很容易写成n-1-i区分:本题和轮转数组(189)分组循环不一样!189:所有元素固定移动 k 步,需要 gcd 分组1861:障碍物分割成多个独立段,石头向段末尾挤,用双指针更合适。

2503_92676540的博客 175

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Hash表:两数之和、字母异位词分组、最长连续序列 [力扣 Hot100]

三道高频哈希表应用题:两数之和(利用HashMap快速查找补数)、字母异位词分组(排序后作为键分组)、最长连续序列(通过HashSet去重并仅从序列起点扩展)。核心思想均为借助哈希结构优化查找效率,避免重复计算。同时提及双指针等其他解法思路,体现算法设计中“空间换时间”的典型策略。

2403_87560480的博客 195

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

LeetCode 3926. 统计有效单词的出现次数【分组循环】

核心思想:用分组循环,一趟遍历字符串,把一个个单词切出来,丢进哈希表统计频次。,先把所有片段拼接成完整文本字符串。,依次返回每个单词在文本里的出现次数。难点:内层循环的判断条件,区分。

2503_92676540的博客 166

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

力扣第526场周赛心得理解

思路:因为题目要求尽可能求出最小的最大值,而满足要求最小公约数为2,作为题目要求最小的最大值,先去求出它的最大公约数再通过value判断最左边是否大于0,以及value本身是否大于0,而index的位置只能为中间或者最右边,所以最后输出只能是value本身或者在这个基础上加相隔相应距离次数的结果。两个整数,是指将第二个整数的所有十进制数位拼接在第一个整数的所有十进制数位之后。如果不存在这样的数组,返回 -1。4097. 合并整数后的最小值。返回所有合并后得到的整数中的。合并,依此类推,直到将。

目前主攻编程,目标是把屏幕上的红波浪线变成流畅运行的程序♪(^∀^●)ノシ 198

LeetCode 0453.最小操作次数使数组元素相等:两次遍历(反向思维)

【LetMeFly】453.最小操作次数使数组元素相等:两次遍历(反向思维)

<font color="Pink">Tisfy的博客</font> 202

【算法学习笔记】LeetCode 15:三数之和(排序 + 双指针)

使用sort()对数组进行排序。理解排序后双指针的移动原理。使用外层循环固定一个数字。使用左右指针寻找另外两个数字。使用continue和while实现去重。理解的执行逻辑。将三层循环优化为排序 + 双指针,使时间复杂度从 O(n³) 降低到 O(n²)。

aqiu111111的博客 156

LeetCode100 15. 三数之和

本题通过排序+双指针优化三数之和。先对数组排序,外层遍历固定第一个数,内层用左右指针查找另两个数,使三数之和为0。通过剪枝(当前数>0则终止)和去重(跳过重复元素)提升效率。相比暴力或哈希法,该方法时间复杂度为O(n²),空间O(1),更高效优雅。

Shaoxingzong的博客 321

LeetCode hot 100 — 226. 翻转二叉树 | 101. 对称二叉树

自己稀里糊涂写了一版本居然还对了,我觉得我的思想就是很简单,这里就是要交换每一个节点的左右子树,所以套用了一下之前的中序遍历的迭代套路。一直在return False,但是没有给真正的正确答案一个出口(注意递归调用中出口 / 返回值很重要,或者说是最重要的)差一步美满....用的递归的写法,差一点点就满分了,先给出自己最开始写的代码。这道题的本质是对每一个节点执行相同的操作,并且交换哪个节点在先并不重要。你可以运用递归和迭代两种方法解决这个问题吗?,翻转这棵二叉树,并返回其根节点。给你一个二叉树的根节点。

Canmido的博客 128

LeetCode2161~2180题目解析

LeetCode2161~2180题目解析

jiaomubai的博客 207

力扣3无重复字符的最长字串(滑动窗口)

该题使用滑动窗口+哈希集合优化,通过复用Set实现O(n)时间复杂度。若每轮循环都新建HashSet,虽逻辑正确,但需重复插入删除,退化为O(n²),导致超时。原解法利用窗口右移时仅移除左端旧字符、扩展右边界,避免重复操作,实现高效遍历。

Pniubi的博客 226

LeetCode 11 - 20

LeetCode 题库 11 - 20

djhws144的博客 225

LeetCodehot100+背包问题+虚拟线程

虚拟线程虽能高效利用CPU,但滥用会导致资源耗尽。错误用法中,瞬间创建1万个虚拟线程并发调用慢速下游服务,虽不占用物理线程,却引发网络连接、内存和下游服务的全面崩溃。根本原因在于虚拟线程仅缓解“等待”成本,未解决“资源”瓶颈。正确做法是在IO边界使用Semaphore限流,如设为100,控制并发数,使多余请求在堆内存中廉价挂起,保护系统稳定。虚拟线程需配合背压机制,才能真正发挥其高并发优势。

记录大学学习学习成长过程,欢迎各位一起交流 405

力扣438.找到字符串中所有字母异位词

该题通过滑动窗口与字符计数数组解决。用两个长度为26的数组 sCount 和 pCount 分别统计当前窗口和目标串 p 中各字母出现次数。初始化窗口后,若两数组相等,则记录起始位置;随后滑动窗口,左移时减去旧字符计数,右移时加上新字符计数,持续比较是否异位词。时间复杂度 O(n),空间复杂度 O(1)。

Pniubi的博客 226
上一篇: leetcode 609. Find Duplicate File in System(找到相同的文件)
下一篇: leetcode 557. Reverse Words in a String III(字符串中单词逆序III)
蓝羽飞鸟
博客等级 码龄8年 1万+粉丝 727原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝羽飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值