android整数二分模板怎么解决边界问题
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,本篇内容主要讲解"android整数二分模板怎么解决边界问题",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"android整数二分模板怎么解决边界问题"吧!
千家信息网最后更新 2025年11月08日android整数二分模板怎么解决边界问题1.区间
2.例题
01:查找最接近的元素
本篇内容主要讲解"android整数二分模板怎么解决边界问题",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"android整数二分模板怎么解决边界问题"吧!
1.区间
//区间分为[l,mid]和[mid+1,r],如下,x<=a[mid]的判断条件,使得x要么在[l,mid],要么[mid+1,r]//最终l会等于r while(l>1; if(a[mid]>=x)r=mid; else l=mid+1; } //区间分为[l,mid-1]和[mid,r],如下,x>=a[mid]的判断条件,使得x要么在[l,mid-1],要么[mid,r] while(l >1; if(a[mid]<=x)l=mid;//不加1死循环条件 else r=mid-1; }
当一个单调区间中有连续多个x时候,第一个模板会取到最左边那个x下标,因为x==a[mid]时候是边界向左压缩。同理,第二个取到最右边的x下标
第二个模板算mid要+1因为区间长度为2时,mid算出来等于l,而第二个模板存在死循环条件:mid给l赋值。
2.例题
01:查找最接近的元素
总时间限制: 1000ms 内存限制: 65536kB
描述:
在一个非降序列中,查找与给定值最接近的元素。
输入:
第一行包含一个整数n,为非降序列长度。1 <= n <= 100000。
第二行包含n个整数,为非降序列各元素。所有元素的大小均在0-1,000,000,000之间。
第三行包含一个整数m,为要询问的给定值个数。1 <= m <= 10000。
接下来m行,每行一个整数,为要询问最接近元素的给定值。所有给定值的大小均在0-1,000,000,000之间。
输出
m行,每行一个整数,为最接近相应给定值的元素值,保持输入顺序。若有多个值满足条件,输出最小的一个。
样例输入:
3
2 5 8
2
10
5
样例输出:
8
5
AC代码:
#includeusing namespace std;const int N=1e5+5;int n,a[N],m,x,l,r,i;bool check(int u){ //下面两种判断条件都可以 //if(a[u]>=x||a[u] (a[u+1]-x))return false; return true;}int main(){ cin>>n; for(i=0;i >a[i]; cin>>m; while(m--) { cin>>x; l=0,r=n-1; //二分就是考虑什么时候向左压缩什么时候向右压缩 while(l >1;//因为mid是下取整,所以mid 永远不会取到初始的右边界 //同理,第二个模板永远不会取到初始的左边界 if(check(mid))r=mid;//满足条件就向左边压缩 else l=mid+1;//向右边压缩 } cout< 到此,相信大家对"android整数二分模板怎么解决边界问题"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
整数
模板
条件
元素
区间
边界
时候
要么
问题
右边
序列
输入
输出
下标
之间
内容
多个
大小
长度
学习
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
异常邮件无法连接到邮件服务器
全国第一数据库
网络安全日活动周总结
网上数据库文献标识
如何打开服务器共享盘
网站数据库备份
江苏教育专业服务器虚拟主机
数据库2000在线
2121国家网络安全宣传周主题
共享车软件开发费用
腾讯王者荣耀服务器瘫了
瀚森网络技术公司
csgo控制台进入社区服务器
网络安全等级考试真题
树莓派配置与云服务器配置
自动驾驶软件开发的工作流程
济南物流软件开发教程
用代理服务器上网怎么用
网络安全作文年级
网络安全专业自我介绍
网络安全方案及设计
维普数据库检索规则中以下
erp怎么ping其他服务器
有关网络安全的快板
公司软件开发流程培训
互联网怎么访问电脑数据库
开源portal服务器
jsp的数据库删除
计算机网络安全漏洞扫描
软件开发项目实施思路