1.11--01:查找最接近的元素

news/2025/2/27 10:22:37/文章来源:https://www.cnblogs.com/yhy2013/p/18564255

查找最接近的元素

题目传送门

思路

可以看到数据范围,如果我们两层循环mn,10000*100000,时间复杂度绝对爆炸

所以我们就需要用到二分查找
什么是二分呢?
通俗的讲,就是每次砍半
假设我们在10个数据中查找接近7的元素

\(1 3 4 8 10 12 39 43 44 45 1\)
我们找到中间元素\(8,12\)
\((10+12)/2=11>7\)
所以我们砍掉右边一半

1 3 4 8 10
1
重复如上操作
\(4<7\)砍掉左边部分

\((8+10)/2>7\)砍掉\(10\)
所以答案就是\(8\)

include

include

include

include

using namespace std;

int a[200005];

int main()
{
int n;cin >> n;
for(int i=1;i<=n;i++) cin >> a[i];
int m;cin >> m;
for(int i=1;i<=m;i++){
int x;cin >> x;
if(x>=a[n]){cout << a[n] << endl;continue;}
if(x<=a[1]){cout << a[1] << endl;continue;}
int l=1,r=n;
while(l<=r){
int mid=(l+r)>>1;//右移=/2
if(a[mid]>=x) r=mid-1;
else l=mid+1;
}
//l->第一个大于等于x的数的位置
//l-1 -> 最后一个小于x的数的位置
//数组a当中离x最近的数
if(abs(a[l]-x) >= abs(a[l-1]-x))
cout << a[l-1] << endl;
else cout << a[l] << endl;
}
return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/839783.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一行代码搞定Windows/Office,史上最简单操作

曾几何时,安装和激活 Windows 或 Office 是让小白头疼的大工程,繁琐的操作让人心力交瘁。而今天,我们只需要一行代码就能轻松搞定!是不是听起来很不可思议? 一行代码究竟如何实现 Windows 和 Office 的快速激活?它是否既高效又安全?如今,无论是学习还是办公,都离不开 …

触想工业显示器应用于光伏自动化设备,助力绿色低碳能源发展

一、行业发展背景受能源危机影响及全球碳中和政策利好,近年来,我国光伏产业呈现快速扩张趋势。作为光伏组件核心发电设备,电池片的市场供需被同步拉高,也带动了电池片制造设备等周边产业的迅速成长。△光伏产业快速成长与此同时,旺盛需求带来的激烈竞争格局不断加剧产业“…

Drools与动态加载规则文件

Drools简介Drools是一款基于Java的开源规则引擎,将规则与业务代码解耦。规则以脚本的形式存储在一个文件中,使规则的变化不需要修改代码,重新启动机器即可在线上环境中生效。规则引擎实现了业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据…

Drools决策表实践运用

决策表使用方式在Drools中,决策表通常是以Excel(.xls或.xlsx)或者CSV格式存储的,这些格式的决策表并不能直接被Drools执行。它们需要被转换成Drools规则语言(DRL)的文本格式,之后才能被编译和执行。Drools提供了工具来帮助完成这一转换,主要使用org.drools.decisiontab…

Economies of Scale

规模经济(Economies of Scale) 规模经济指的是随着生产规模的扩大,单位产品的平均成本下降的现象。这通常发生在企业生产规模增加到一定程度时,由于固定成本(如厂房、机器设备等)被更多的产品分摊,单位产品的固定成本降低,同时由于规模的扩大,企业可能会享受到采购原材…

Java更新数据库报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET

在Java中,使用mybatis-plus更新实体类对象到mysql,其中一个字段对应数据库中json数据类型,更新时报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET binary.一、现象 在Java中,使用mybatis-plus更新实体类对象到mysql,其中一个字段对应…

【Azure Cloud Service】在Windows系统中抓取网络包 ( 不需要另外安全抓包工具)

通常,在生产环境中,为了保证系统环境的安全和纯粹,是不建议安装其它软件或排查工具(如果可以安装,也是需要走审批流程)。本文将介绍一种,不用安装Wireshark / tcpdump 等工具,使用Windows系统自带的 netsh trace 命令来获取网络包的步骤:副标题:Cloud Service Extend…

hhdb数据库介绍(8-1)

部署 自动部署 自动部署为管理平台在界面中支持自动化安装部署计算节点集群的功能。目前管理平台从V2.5.0及以后拥有“集群部署”、“单机部署”两个自动化安装功能。“集群部署”适合从0开始一次性部署整套计算节点集群的场景,“单机部署”适合再已部署好的集群上新增个别集群…

玩手机打电话行为识别检测系统

玩手机打电话识别检测系统通过在指定区域安装监控摄像头,玩手机打电话识别检测系统实现7*24小时的实时监测,一旦发现有员工在上班时间抽烟或打电话,系统会立即触发告警机制。告警信息不仅会通过系统内部的警报系统发出,还会通过短信或邮件等方式通知管理人员,确保管理人员…

AO3400A-ASEMI中低压N沟道MOS管AO3400A

AO3400A-ASEMI中低压N沟道MOS管AO3400A编辑:ll AO3400A-ASEMI中低压N沟道MOS管AO3400A 型号:AO3400A 品牌:ASEMI 封装:SOT-23 批号:最新 最大漏源电流:5.8A 漏源击穿电压:30V RDS(ON)Max:30mΩ 引脚数量:3 芯片个数: 沟道类型:N沟道MOS管、低压MOS管 漏电流:ua 特…

图神经网络在欺诈检测与蛋白质功能预测中的应用概述

金融交易网络和蛋白质结构存在共同特征:它们在欧几里得(x, y)空间中难以建模,需要通过复杂、大规模且异构的图结构进行精确编码和表征。图是表示关系数据的自然结构范式,特别是在金融网络和蛋白质结构等领域。这类图能够捕捉实体间的复杂关系和交互模式,例如金融系统中的…

高空抛物智能抓拍摄像头

高空抛物智能抓拍摄像头基于C语言和Python视觉算法识别技术,高空抛物智能抓拍摄像头实现了对高空抛物行为的实时监控和预警。该系统通过安装在现场的监控摄像头,对小区现场进行7*24小时不间断的监测,当监控摄像头捕捉到可疑行为时,系统会立即进行分析,一旦确认为抛物行为,…