千问    LeetCode 3911. 移除子数组元素后第 K 小偶数 Java实现
这道题的核心是二分查找 序号映射把偶数映射为序号问题转化为从自然数序列中删除若干序号后找第 k 个剩余序号再用二分定位答案。题目理解给定严格递增数组 nums 和查询 [l, r, k]从全局正偶数序列 (2, 4, 6, 8, ...) 中移除 nums[l..r] 子数组里出现的所有偶数返回剩下的第 k 个偶数。核心思路1. 序号映射偶数 v 对应序号 v/2从 1 开始全局偶数序列就是序号序列 1, 2, 3, ...答案 2 × 第k个剩余序号2. 预处理遍历 nums把所有偶数的原始下标存入 evenPos因 nums 严格递增下标天然有序3. 每个查询- 在 evenPos 中二分找到子数组 [l, r] 内的偶数下标区间 [left, right)- 这些偶数对应的序号构成严格递增的被删除集合 S- 问题转化为从自然数序列中删掉 S找第 k 个剩余序号4. 找第 k 个剩余序号用二分或数学方法跳过被删除的序号定位答案Java 实现class Solution {public int[] kthRemainingInteger(int[] nums, int[][] queries) {int n nums.length;// 预处理收集所有偶数元素的原始下标ListInteger evenPos new ArrayList();for (int i 0; i n; i) {if (nums[i] % 2 0) {evenPos.add(i);}}int[] ans new int[queries.length];for (int q 0; q queries.length; q) {int l queries[q][0], r queries[q][1], k queries[q][2];// 二分找到 evenPos 中第一个 l 的位置int left lowerBound(evenPos, l);// 二分找到 evenPos 中第一个 r 的位置int right upperBound(evenPos, r);// evenPos[left..right) 就是子数组 [l,r] 内所有偶数的下标// 对应的偶数值为 nums[evenPos[i]]序号为 nums[evenPos[i]] / 2// 从全局偶数序列中删掉这些序号后找第 k 个剩余序号long result findKthRemaining(evenPos, nums, left, right, k);ans[q] (int) result;}return ans;}/*** 在被删除的偶数序号集合中找第 k 个剩余序号返回对应的偶数值*/private long findKthRemaining(ListInteger evenPos, int[] nums,int left, int right, long k) {// 被删除的序号个数int removedCount right - left;if (removedCount 0) {// 没有偶数被删除直接返回第 k 个偶数return 2L * k;}// 被删除的序号集合nums[evenPos[i]] / 2i in [left, right)// 这些序号严格递增// 用二分在值域上找第 k 个不在被删除集合中的序号long lo 1, hi 2L * (k removedCount); // 上界足够大long ans hi;while (lo hi) {long mid lo (hi - lo) / 2;// 计算 [1, mid] 中有多少个被删除的序号long removedInRange countRemovedInRange(evenPos, nums, left, right, mid);// [1, mid] 中剩余的序号个数long remaining mid - removedInRange;if (remaining k) {ans mid;hi mid - 1;} else {lo mid 1;}}return 2L * ans;}/*** 计算被删除序号集合中值 target 的个数*/private long countRemovedInRange(ListInteger evenPos, int[] nums,int left, int right, long target) {// 在被删除的偶数中找值 2*target 的个数// 即 nums[evenPos[i]] 2*targetlong val 2L * target;int lo left, hi right - 1;int pos left - 1;while (lo hi) {int mid lo (hi - lo) / 2;if (nums[evenPos.get(mid)] val) {pos mid;lo mid 1;} else {hi mid - 1;}}return pos - left 1;}private int lowerBound(ListInteger list, int target) {int lo 0, hi list.size();while (lo hi) {int mid lo (hi - lo) / 2;if (list.get(mid) target) hi mid;else lo mid 1;}return lo;}private int upperBound(ListInteger list, int target) {int lo 0, hi list.size();while (lo hi) {int mid lo (hi - lo) / 2;if (list.get(mid) target) hi mid;else lo mid 1;}return lo;}}关键点解析- 序号映射偶数 v → 序号 v/2把偶数序列删除问题转化为自然数序列删除问题简化思考- 二分定位子数组偶数lowerBound(l) 和 upperBound(r) 快速找到 [l,r] 内偶数的下标区间避免线性扫描- 值域二分找答案在序号值域上二分对每个候选值 mid统计 [1, mid] 中被删除的序号个数从而算出剩余序号个数与 k 比较调整边界- 时间复杂度预处理 O(n)每个查询 O(log²M)M 为值域大小整体高效需要我帮你整理一份二分查找的通用模板吗包括 lower_bound、upper_bound 的各种变体方便你直接套用。

相关新闻

免费开源文档下载工具:kill-doc 让 30+ 平台文档一键下载

免费开源文档下载工具:kill-doc 让 30+ 平台文档一键下载

免费开源文档下载工具:kill-doc 让 30 平台文档一键下载 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是为了…

2026/10/13 17:12:46 阅读更多 →
从零搭建私有GitWeb服务器:内网代码浏览与团队协作实践

从零搭建私有GitWeb服务器:内网代码浏览与团队协作实践

1. 项目概述:为什么需要一个私有的GitWeb服务器? 在团队协作开发中,Git作为版本控制工具已经深入人心。我们通常使用 git log 、 git diff 在命令行查看历史,或者依赖GitHub、GitLab这类平台提供的Web界面进行代码浏览。但你是…

2026/10/7 7:07:59 阅读更多 →
Gerrit代码审核工具:从核心概念到团队协作的完整实践指南

Gerrit代码审核工具:从核心概念到团队协作的完整实践指南

1. 项目概述:为什么我们需要Gerrit这样的代码审核工具?在任何一个严肃的软件开发团队里,代码审核都是保证代码质量、统一编码风格、促进知识共享的关键环节。你可能用过GitHub的Pull Request或者GitLab的Merge Request,它们轻量、…

2026/10/9 22:33:19 阅读更多 →

最新新闻

SQL WHERE语句核心语法与性能优化实战指南

SQL WHERE语句核心语法与性能优化实战指南

WHERE语句本身不难,但很多人写SQL多年还是会在它上面栽跟头——要么是条件写错导致全表扫描,要么是NULL值判断踩坑,要么是复杂的多条件组合逻辑理不清。这篇东西我把实际项目里积累的经验捋一遍,从基础语法到进阶坑点都覆盖到&…

2026/10/13 17:12:13 阅读更多 →
LiteLLM:统一LLM调用接口的跨模型抽象层实战指南

LiteLLM:统一LLM调用接口的跨模型抽象层实战指南

1. 项目概述:LiteLLM 是什么,它解决了哪些真实痛点? LiteLLM 这个名字乍一听像是某个轻量级编程语言或小众框架,但其实它是一个在开发者圈子里快速升温的开源工具——准确地说,它是一个 统一的 LLM(大语言…

2026/10/13 17:12:13 阅读更多 →
Windows 上 Claude Code 安装配置与避坑实战指南

Windows 上 Claude Code 安装配置与避坑实战指南

Claude Code 是 Anthropic 官方的命令行 AI 编程助手,在 Windows 上把它跑起来,等于给你的 PowerShell 或 Windows Terminal 装了一个能读代码、改代码、执行命令、查异常的老练结对工程师。它最大的价值是把“复制代码去网页里问”改成“直接在项目目录…

2026/10/13 17:12:13 阅读更多 →
如何识别与规避虚构技术工具的误导性内容

如何识别与规避虚构技术工具的误导性内容

我无法根据当前输入生成符合要求的博文。原因如下:项目标题 "impeccable" 本身无明确技术指向:该词为英文形容词(意为“无可挑剔的、完美的”),在技术语境中不构成可解析的项目实体。它既非工具名、框架名、…

2026/10/13 17:12:13 阅读更多 →
impeccable CLI协议:npx驱动的零配置终端交互范式

impeccable CLI协议:npx驱动的零配置终端交互范式

1. 项目概述:一个被误读的“完美”工具名,以及它背后真实的CLI生态逻辑最近在多个开发者社区和前端技术群聊里,“impeccable”这个词频繁跳出来——不是作为形容词,而是作为一个命令行工具的名字。很多人第一反应是:“…

2026/10/13 17:12:13 阅读更多 →
配电网韧性提升中的移动储能预布局与动态调度优化:IEEE33节点Matlab实现

配电网韧性提升中的移动储能预布局与动态调度优化:IEEE33节点Matlab实现

配电网韧性、移动储能预布局、动态调度,这三个词放在一起,基本就是一个典型的两阶段优化问题。这篇项目复现的是基于IEEE33节点算例的完整Matlab实现,目标很直接:在台风、冰冻这类极端灾害场景下,通过移动储能的灾前布…

2026/10/13 17:11:12 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →