Kimi LeetCode 3943. 递增后的数对数量 Java实现

发布时间:2026/8/18 11:47:00

Kimi    LeetCode 3943. 递增后的数对数量 Java实现
这是 LeetCode 3943 递增后的数对数量 的 Java 实现。解题思路本题的核心难点在于支持区间加操作的同时快速查询某个值在数组中的出现次数。关键观察- nums1.length 5极短- nums2.length 5×10⁴queries.length 5×10⁴对于类型 2 查询 [2, tot]答案为\sum{j0}^{|nums1|-1} \text{count}(nums2,\ tot - nums1[j])因此问题转化为维护 nums2 的频次信息支持区间加和单值频次查询。采用 分块Sqrt Decomposition- 将 nums2 分成大小约 \sqrt{n} 的块- 每块维护一个 HashMap 记录块内元素的基础值频次以及一个懒标记 add- 完整块区间加直接 add val- 不完整块先将懒标记下推更新数组和 map再暴力修改- 查询目标值减去该块的 add 后在 map 中查找由于值可能累积到 5 \times 10^9超出 int需用 long 存储。时间复杂度O(q \cdot (\sqrt{n} |nums1| \cdot \sqrt{n}))约为 O(10^8) 级别。javaimport java.util.*;class Solution {private static class Block {int l, r; // 块管辖区间 [l, r)MapLong, Integer cnt; // 基础值的频次不含 addlong add; // 懒标记Block(int l, int r) {this.l l;this.r r;this.cnt new HashMap();this.add 0;}}public int[] numberOfPairs(int[] nums1, int[] nums2, int[][] queries) {int n nums2.length;// 块大小取 sqrt(n)约 220~230int blockSize Math.max(1, (int) Math.sqrt(n));int blockCnt (n blockSize - 1) / blockSize;Block[] blocks new Block[blockCnt];// 用 long 数组存储实际值防止溢出long[] arr new long[n];for (int i 0; i n; i) {arr[i] nums2[i];}// 初始化分块for (int i 0; i blockCnt; i) {int L i * blockSize;int R Math.min(n, L blockSize);blocks[i] new Block(L, R);for (int j L; j R; j) {blocks[i].cnt.merge(arr[j], 1, Integer::sum);}}// 统计类型 2 查询个数int q2 0;for (int[] q : queries) {if (q[0] 2) q2;}int[] ans new int[q2];int idx 0;for (int[] q : queries) {if (q[0] 1) { // 区间加int L q[1], R q[2], val q[3];for (Block b : blocks) {if (b.r L || b.l R) continue; // 无交集if (L b.l b.r R 1) {// 完整块直接打懒标记b.add val;} else {// 不完整块先下推懒标记if (b.add ! 0) {for (int i b.l; i b.r; i) {long oldVal arr[i];long newVal oldVal b.add;// 旧值频次 -1b.cnt.merge(oldVal, -1, (oldV, newV) -oldV newV 0 ? null : oldV newV);// 新值频次 1b.cnt.merge(newVal, 1, Integer::sum);arr[i] newVal;}b.add 0;}// 暴力修改交集部分int start Math.max(L, b.l);int end Math.min(R, b.r - 1);for (int i start; i end; i) {b.cnt.merge(arr[i], -1, (oldV, newV) -oldV newV 0 ? null : oldV newV);arr[i] val;b.cnt.merge(arr[i], 1, Integer::sum);}}}} else { // 类型 2 查询long tot q[1];long res 0;for (Block b : blocks) {for (int x : nums1) {long need tot - x - b.add;res b.cnt.getOrDefault(need, 0);}}ans[idx] (int) res;}}return ans;}}关键点说明1. long 存储add 累积可能超过 int 上限约 5 \times 10^9必须使用 long2. 懒标记下推不完整块修改前先将块内所有元素的实际值更新到 arr并同步 cnt3. 频次为 0 时删除merge 的 remapping 函数返回 null 可自动移除该 key避免 map 膨胀4. 复杂度每次类型 1 操作最多暴力处理 2\sqrt{n} 个元素每次类型 2 查询遍历 \sqrt{n} 个块每块最多查 |nums1| \le 5 个值

相关新闻

很好用的偷懒软件

很好用的偷懒软件

2026/8/18 11:47:00

1)话袋自动录音,生成思维导图2)懒人 excel3)pdf24不太有用,修改不行

带货进行商务对接

带货进行商务对接

2026/8/18 11:47:00

uid 申请样品带货1.76 复制打开抖音,看看【小莉老师的作品】一条视频教会新手带货人怎么和商务对接!# 短视频带... https://v.douyin.com/CUfipBxn5ZU/ EU.LW 10/17 ipQ:/ :7pm

还在被英文Figma界面劝退?Figma中文汉化插件从安装到排错一次讲清

还在被英文Figma界面劝退?Figma中文汉化插件从安装到排错一次讲清

2026/8/18 11:37:00

还在被英文Figma界面劝退?Figma中文汉化插件从安装到排错一次讲清 【免费下载链接】figmaCN 中文 Figma 插件,设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 如果你是一名设计师,大概率经历过这种时刻&…

聚合音源实战手册:一个配置打通五大平台无损曲库,告别来回切换

聚合音源实战手册:一个配置打通五大平台无损曲库,告别来回切换

2026/8/18 16:07:11

聚合音源实战手册:一个配置打通五大平台无损曲库,告别来回切换 【免费下载链接】lxmusic- lxmusic(洛雪音乐)全网最新最全音源 项目地址: https://gitcode.com/gh_mirrors/lx/lxmusic- 晚上十点,你想听一首十年前的老歌。网易云有版权…

Andy.scss 进阶指南:如何基于现有代码扩展属于自己的 SASS Mixins

Andy.scss 进阶指南:如何基于现有代码扩展属于自己的 SASS Mixins

2026/8/18 16:07:11

Andy.scss 进阶指南:如何基于现有代码扩展属于自己的 SASS Mixins 【免费下载链接】andy Open-Source Collection of Useful SASS Mixins Library 项目地址: https://gitcode.com/gh_mirrors/an/andy Andy.scss 是一个开源、轻量、零依赖的 SASS Mixins 库&a…

GANFit的开源生态指南:3D人脸重建与TBGAN纹理形状模型许可证申请与探索

GANFit的开源生态指南:3D人脸重建与TBGAN纹理形状模型许可证申请与探索

2026/8/18 16:07:11

GANFit的开源生态指南:3D人脸重建与TBGAN纹理形状模型许可证申请与探索 【免费下载链接】GANFit Project Page of GANFIT: Generative Adversarial Network Fitting for High Fidelity 3D Face Reconstruction [CVPR2019] 项目地址: https://gitcode.com/gh_mirro…

reinstall一键重装脚本终极指南:把重装命令交给别名,手残星人也能三秒上车

reinstall一键重装脚本终极指南:把重装命令交给别名,手残星人也能三秒上车

2026/8/18 16:07:11

reinstall一键重装脚本终极指南:把重装命令交给别名,手残星人也能三秒上车 【免费下载链接】reinstall 一键DD/重装脚本 (One-click reinstall OS on VPS) 项目地址: https://gitcode.com/GitHub_Trending/re/reinstall 凌晨两点,监控…

3分钟免费获取苹方字体:Windows安装与网页字体美化完整指南

3分钟免费获取苹方字体:Windows安装与网页字体美化完整指南

2026/8/18 16:07:11

3分钟免费获取苹方字体:Windows安装与网页字体美化完整指南 【免费下载链接】PingFangSC PingFangSC字体包文件、苹果平方字体文件,包含ttf和woff2格式 项目地址: https://gitcode.com/gh_mirrors/pi/PingFangSC 如果你正为 Windows 系统里的字体…

用 MemorySharp 打造自动化测试工具:模拟键盘鼠标实现 UI 回归测试

用 MemorySharp 打造自动化测试工具:模拟键盘鼠标实现 UI 回归测试

2026/8/18 15:57:11

用 MemorySharp 打造自动化测试工具:模拟键盘鼠标实现 UI 回归测试 【免费下载链接】MemorySharp A C# based memory editing library targeting Windows applications, offering various functions to extract and inject data and codes into remote processes to…

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

2026/8/17 1:28:42

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

2026/8/18 1:03:22

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

2026/8/17 8:40:51

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

多智能体大模型辩论中的立场收敛:从伪共识到理性说服的评估方法

多智能体大模型辩论中的立场收敛:从伪共识到理性说服的评估方法

2026/8/18 0:06:29

1. 从一场“假辩论”说起:为什么大模型辩论会走向“伪共识”?最近在折腾多智能体大语言模型(Multi-Agent LLM)的辩论实验,发现一个挺有意思的现象。我让几个基于GPT-4的智能体就一个争议性话题(比如“远程办…

Frida动态代码插桩框架:从原理到实战的移动安全与逆向工程指南

Frida动态代码插桩框架:从原理到实战的移动安全与逆向工程指南

2026/8/18 0:06:29

1. 从“黑盒”到“白盒”:为什么我们需要Frida在移动安全、逆向工程甚至是一些自动化测试的场景里,我们经常会遇到一个让人头疼的问题:面对一个编译好的、没有源代码的应用程序,我们如何知道它在运行时内部发生了什么?…

ECharts饼图中心文字配置指南:从label与title区别到动态交互实现

ECharts饼图中心文字配置指南:从label与title区别到动态交互实现

2026/8/18 0:06:29

1. 从“空心”到“有魂”:为什么要在饼图中间加文字?如果你用过ECharts画饼图,大概率会注意到一个现象:默认生成的饼图中间是空心的。这个设计本身没问题,它清晰地展示了各个扇区的占比关系。但在很多实际的业务场景里…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/17 12:00:53

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/15 10:10:27

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/18 12:20:24

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…