【二分】BISHI89 山峰数组计数
思路求解代码publicstaticvoidmain(String[]args)throwsIOException{// 使用BufferedReader读取输入使用PrintWriter输出结果BufferedReaderbrnewBufferedReader(newInputStreamReader(System.in));PrintWriteroutnewPrintWriter(newOutputStreamWriter(System.out));// 读取整数n表示数组的长度intnInteger.parseInt(br.readLine().trim());// 创建长度为n的数组P用于存储输入的数值long[]Pnewlong[n];// 创建长度为n1的前缀和数组preSumpreSum[0]0long[]preSumnewlong[n1];// 读取一行输入按空格分割成字符串数组String[]sbr.readLine().trim().split(\\s);// 计算前缀和for(inti0;in;i){// 将字符串转换为长整型并存入数组PP[i]Long.parseLong(s[i]);// 计算前缀和preSum[i1]表示前i个元素的和preSum[i1]preSum[i]P[i];}// 初始化总和变量totallongtotal0;// 遍历数组从第2个元素开始到倒数第2个元素for(intj2;jn;j){// 计算limit1即(preSum[j]-1)/2longlimit1(preSum[j]-1)/2;// 计算limit2即2*preSum[j]-preSum[n]-1longlimit22*preSum[j]-preSum[n]-1;// 取limit1和limit2中的较小值作为阈值longthresholdMath.min(limit1,limit2);// 如果阈值大于等于第一个元素的前缀和if(thresholdpreSum[1]){// 调用upper函数计算符合条件的元素个数intcountupper(preSum,1,j-1,threshold);// 将count累加到total中totalcount;}}// 输出最终结果out.println(total);// 刷新输出流确保所有输出都被写入out.flush();// 关闭输出流释放资源out.close();// 关闭输入流释放资源br.close();}/** * 在有序数组中查找最后一个小于等于目标值的元素的位置并返回满足条件的元素个数 * param preSum 有序数组表示前缀和数组 * param left 查找范围的左边界 * param right 查找范围的右边界 * param target 目标值 * return 返回在[left, right]范围内小于等于target的元素个数 */privatestaticintupper(long[]preSum,intleft,intright,longtarget){intlowleft,highright;// 初始化查找范围的左右边界intans0;// 初始化答案变量// 执行二分查找while(lowhigh){intmidlow((high-low)1);// 计算中间值使用位运算优化替代除法// 这种写法可以避免(lowhigh)可能导致的整数溢出问题// 检查中间值是否满足条件if(preSum[mid]target){// 如果中间值小于等于目标值ansmid;// 更新答案为当前位置lowmid1;// 在右半部分继续查找}else{// 如果中间值大于目标值highmid-1;// 在左半部分继续查找}}// 返回结果如果找到满足条件的元素返回其个数否则返回0returnans0?(ans-left1):0;}

相关新闻

Cassandra vs MongoDB:大数据场景下的最佳选择

Cassandra vs MongoDB:大数据场景下的最佳选择

Cassandra vs MongoDB:大数据场景下的数据库选择终极指南 一、引言:大数据场景下的数据库选型困境 假设你正在开发一个实时物联网平台,需要处理100万台设备每秒钟产生的传感器数据(温度、湿度、电量);或者你…

2026/7/5 13:10:44 阅读更多 →
php方案 config.m4编译配置

php方案 config.m4编译配置

config.m4 编译配置是啥:./configure 运行时读的脚本,决定你的扩展要不要编译、依赖啥库、怎么找库。---最简单的 m4,没有外部依赖:PHP_ARG_ENABLE([myext],[whether to enable myext],[AS_HELP_STRING([--enable-myext], [Enable…

2026/7/6 8:32:41 阅读更多 →
php方案 自定义对象handlers

php方案 自定义对象handlers

自定义对象 handlers为啥要自定义:PHP 对象默认行为是属性读写,但你写 C 扩展时对象里装的是 C 结构体,需要告诉 Zend 引擎怎么创建、销毁、克隆这个对象。---先定义自己的对象结构:// 自定义对象 zend_object 打底 自己的数据t…

2026/5/17 8:02:04 阅读更多 →

最新新闻

免费前端开发库认证终极指南:从零到专业的三步进阶法

免费前端开发库认证终极指南:从零到专业的三步进阶法

免费前端开发库认证终极指南:从零到专业的三步进阶法 【免费下载链接】freeCodeCamp freeCodeCamp.orgs open-source codebase and curriculum. Learn math, programming, and computer science for free. 项目地址: https://gitcode.com/GitHub_Trending/fr/free…

2026/7/7 0:47:42 阅读更多 →
结构化方法:自顶向下的“拆解术“

结构化方法:自顶向下的“拆解术“

结构化方法:自顶向下的"拆解术" 开篇:从拆快递中学到的智慧 你有没有这样的经历? 收到一个巨大的快递,打开一看,里面有无数个小包裹,每个小包裹里还有更小的包裹,层层嵌套。 这种"从大到小、层层分解"的方式,就是结构化方法的核心思想。 什么…

2026/7/7 0:43:41 阅读更多 →
并发编程核心概念辨析

并发编程核心概念辨析

一、背景:CPU 多级缓存架构为了读者在阅读后序章节时,有更清晰、更形象的认知,这里放上现代 CPU 缓存的典型结构。一图胜千言,不多赘述,仅陈述以下要点:一颗 CPU,往往有多个核心(cor…

2026/7/7 0:43:41 阅读更多 →
如何识别PARP14

如何识别PARP14

一、PARP14的基础概述聚腺苷二磷酸核糖聚合酶14(PARP14,Poly(ADP-ribose) polymerase 14),也被称为PARP-4,是PARP家族中的一个重要成员。PARP家族包括多个聚腺苷二磷酸核糖聚合酶,它们在细胞的多个关键过程…

2026/7/7 0:39:40 阅读更多 →
Java毕设选题推荐:基于 SpringBoot 的教学过程考核评价系统的设计与实现 基于 SpringBoot 的课程阶段性考核管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】

Java毕设选题推荐:基于 SpringBoot 的教学过程考核评价系统的设计与实现 基于 SpringBoot 的课程阶段性考核管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/7 0:37:39 阅读更多 →
综合项目三:Web全栈应用从零部署

综合项目三:Web全栈应用从零部署

在当今的互联网时代,掌握全栈开发与部署能力是每一位后端开发者、DevOps 工程师乃至独立开发者的核心竞争力。然而,很多初学者在完成代码编写后,却在部署环节频频碰壁——服务器环境配置、域名解析、HTTPS 证书、负载均衡、日志监控……这些“最后一公里”的问题往往比写代码…

2026/7/7 0:35:38 阅读更多 →

日新闻

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

图片浏览是移动应用中最高频的场景之一。从社交应用的照片流到电商平台的商品图集,从旅游应用的景点相册到摄影作品展示——用户对图片浏览的体验要求不断提高:流畅的切换动画、直观的缩略图导航、便捷的收藏操作、自动播放模式。HarmonyOS NEXT ArkUI 虽…

2026/7/7 0:05:16 阅读更多 →
24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V稳压芯片完整选型指南 PW8600 PW75XX PW2815 PW2312B LDODC/DC全方案 一、24V稳压方案概述 24V直流电源在工业自动化、门禁系统、电梯控制、汽车电子、LED驱动、监控设备等场景中应用极广,是最常见的中压直流母线电压。要将24V母线稳定降压至下游MCU、传感器…

2026/7/7 0:05:16 阅读更多 →
RAG+知识图谱混合检索与Graph RAG核心对比

RAG+知识图谱混合检索与Graph RAG核心对比

做企业RAG落地的团队,往往容易卡在一容易踩坑的选型难题: 当需求单纯靠向量RAG搞不定、单纯靠知识图谱也搞不定,必须同时依赖「文本语义理解 实体关系推理」时,到底是做「向量图谱混合检索」就够了,还是必须上「Grap…

2026/7/7 0:07: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 阅读更多 →

月新闻