【二分】BISHI85 【模板】整数域二分
思路求解代码publicstaticvoidmain(String[]args)throwsIOException{// 使用BufferedReader读取输入PrintWriter输出结果BufferedReaderbrnewBufferedReader(newInputStreamReader(System.in));PrintWriteroutnewPrintWriter(newOutputStreamWriter(System.out));// 读取第一行输入分割成字符串数组String[]strAbr.readLine().trim().split(\\s);// 解析数组长度n和查询次数qintnInteger.parseInt(strA[0]);intqInteger.parseInt(strA[1]);// 创建数组a并读取输入数据int[]anewint[n];String[]strBbr.readLine().trim().split(\\s);for(inti0;in;i){a[i]Integer.parseInt(strB[i]);}// 对数组进行排序为后续查询做准备Arrays.sort(a);// 处理q次查询while(q--0){// 读取每次查询的左右边界String[]strCbr.readLine().trim().split(\\s);intlInteger.parseInt(strC[0]);intrInteger.parseInt(strC[1]);// 使用二分查找计算下界和上界intleftlowerBound(a,l);intrightupperBound(a,r);// 输出结果范围内的元素个数out.println(right-left);}// 关闭IO资源out.flush();out.close();br.close();}/** * 二分查找下界函数 * * param a 已排序的数组 * param target 目标值 * return 第一个大于等于target的元素的索引 */privatestaticintlowerBound(int[]a,inttarget){// 初始化查找范围的 low 和 high 指针// low 从数组的起始位置 0 开始// high 从数组长度开始不包括该位置intlow0,higha.length;// 当 low 小于 high 时继续查找// 这是循环查找的条件确保查找范围有效while(lowhigh){// 计算中间位置 mid// 使用位运算 (high-low)1 代替除法 2提高效率// 防止整数溢出同时确保 mid 总是在 low 和 high 之间intmidlow((high-low)1);// 如果中间位置的元素大于等于目标值// 说明目标值可能在左半部分或者 mid 就是我们要找的位置// 因此将 high 设置为 mid继续在左半部分查找if(a[mid]target){highmid;}else{// 如果中间位置的元素小于目标值// 说明目标值一定在右半部分// 因此将 low 设置为 mid1继续在右半部分查找lowmid1;}}// 当循环结束时low 指向第一个大于等于 target 的元素的位置// 如果所有元素都小于 target则返回数组长度returnlow;}/** * 二分查找上界函数 * * param a 已排序的数组 * param target 目标值 * return 第一个大于target的元素的索引 */privatestaticintupperBound(int[]a,inttarget){// 初始化查找范围的左右边界左边界为0右边界为数组长度intlow0,higha.length;// 当左边界小于右边界时继续查找while(lowhigh){// 计算中间位置使用位运算防止溢出intmidlow((high-low)1);// 如果中间位置的值大于目标值则上界在左半部分if(a[mid]target){highmid;}else{// 否则上界在右半部分且不包括中间位置lowmid1;}}// 返回第一个大于target的元素的索引returnlow;}

相关新闻

数据仓库监控体系搭建:从ETL到查询全链路监控

数据仓库监控体系搭建:从ETL到查询全链路监控

数据仓库监控体系搭建:从ETL到查询全链路监控关键词:数据仓库监控、ETL监控、查询性能、全链路追踪、告警系统摘要:数据仓库是企业的“数字大脑”,但如果没有可靠的监控体系,再强大的大脑也可能“生病”却不自知。本文…

2026/7/6 10:31:17 阅读更多 →
AI赋能,AI应用架构师重塑渠道管理格局

AI赋能,AI应用架构师重塑渠道管理格局

AI赋能,AI应用架构师重塑渠道管理格局 一、引言 钩子 在当今竞争激烈的商业环境中,企业常常面临这样的困境:投入大量资源拓展销售渠道,却难以精准把握各渠道的绩效表现。不同渠道的客户数据分散,无法有效整合分析&…

2026/7/4 3:56:03 阅读更多 →
好写作AI:实证分析“鬼门关”:AI教你从“看着数据发呆”到“思路清晰”

好写作AI:实证分析“鬼门关”:AI教你从“看着数据发呆”到“思路清晰”

问卷收回来了,数据录进去了,SPSS打开了——然后呢?你是不是也经历过这种绝望:盯着屏幕上的数字,脑子一片空白。这个变量和那个变量啥关系?该用回归还是相关?显著性大于0.05怎么办?出…

2026/7/5 6:32:30 阅读更多 →

最新新闻

SPI EEPROM与Cortex-M4的高可靠性嵌入式存储方案

SPI EEPROM与Cortex-M4的高可靠性嵌入式存储方案

1. 项目背景与核心需求在嵌入式系统设计中,数据存储的可靠性始终是开发者面临的关键挑战之一。当系统意外断电或发生故障时,如何确保关键数据不丢失?这正是非易失性存储技术要解决的核心问题。M95M02-DR作为意法半导体(ST)推出的2Mb SPI EEPR…

2026/7/6 22:29:21 阅读更多 →
嵌入式系统电源管理:TPS65263与PIC32MZ实战设计

嵌入式系统电源管理:TPS65263与PIC32MZ实战设计

1. 项目背景与核心需求在嵌入式系统开发中,电源管理一直是个关键挑战。随着现代MCU和外设的复杂度提升,单一电压轨已经无法满足需求。我最近在为一个工业传感器项目设计供电方案时,就遇到了需要同时提供1.8V、3.3V和5V三种电压的棘手情况。传…

2026/7/6 22:25:18 阅读更多 →
海康威视 SDK V6.1.4.7 Java 二次开发:SpringBoot 集成 3 大核心功能(预览/回放/云台)

海康威视 SDK V6.1.4.7 Java 二次开发:SpringBoot 集成 3 大核心功能(预览/回放/云台)

海康威视SDK V6.1.4.7 Java二次开发:SpringBoot集成3大核心功能实战指南在智能安防领域,海康威视设备占据着重要市场份额。本文将带您从零开始构建一个基于SpringBoot的企业级视频监控管理系统,实现设备实时预览、录像回放和云台控制三大核心…

2026/7/6 22:25:18 阅读更多 →
如何快速获取音乐歌词:一站式歌词下载解决方案

如何快速获取音乐歌词:一站式歌词下载解决方案

如何快速获取音乐歌词:一站式歌词下载解决方案 【免费下载链接】163MusicLyrics 云音乐歌词获取处理工具【网易云、QQ音乐】 项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics 还在为找不到音乐歌词而烦恼吗?163MusicLyrics是一…

2026/7/6 22:21:04 阅读更多 →
直流电机驱动系统优化:TC78H660FTG与PIC18F87J11方案

直流电机驱动系统优化:TC78H660FTG与PIC18F87J11方案

1. 项目背景与核心器件选型 在工业自动化和消费电子领域,直流电机驱动系统的效率优化一直是工程师面临的关键挑战。TC78H660FTG作为东芝新一代H桥驱动器,与Microchip的PIC18F87J11微控制器组合,为解决这一问题提供了创新方案。 1.1 TC78H66…

2026/7/6 22:19:03 阅读更多 →
Flink Web UI未授权访问漏洞修复实战:从原理到Nginx反向代理加固

Flink Web UI未授权访问漏洞修复实战:从原理到Nginx反向代理加固

1. 项目概述:一次真实的Flink安全加固实战最近在梳理线上数据平台的资产时,安全扫描工具突然弹出一个高危告警:Apache Flink Web Dashboard存在未授权访问漏洞。这个告警让我心头一紧,因为这意味着任何能访问到Flink Web UI地址的…

2026/7/6 22:15:01 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻