Bailian4134 查找最接近的元素【二分查找】
4134:查找最接近的元素
总时间限制: 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
问题链接:Bailian4134 查找最接近的元素
问题描述:(略)
问题分析:
这个问题不同与查找某个值,找的是最接近的值,可以用二分查找,但是细节处理略有不同,具体参见程序代码。
程序说明:需要注意循环结束条件,只剩下2个元素时简单判断一下就可以了。
参考链接:(略)
题记:有序的话就可以使用二分查找。
AC的C语言程序如下:
/* Bailian4134 查找最接近的元素 */#include <stdio.h>
#include <stdlib.h>#define N 100000
int a[N];int main(void)
{int n, m, i;scanf("%d", &n);for(i = 0; i < n; i++)scanf("%d", &a[i]);scanf("%d", &m);while(m--) {int k, l = 0, r = n - 1, mid;scanf("%d", &k);if(k <= a[0]) {printf("%d\n", a[0]); continue;}if(k >= a[n - 1]) {printf("%d\n", a[n - 1]); continue;}while(l + 1 < r) {mid = (l + r) / 2;if(a[mid] > k) r = mid;else if(a[mid] < k) l = mid;else {l = r = mid; break;}}printf("%d\n", abs(a[l] - k) <= abs(a[r] - k) ? a[l] : a[r]);}return 0;
}
Bailian4134 查找最接近的元素【二分查找】相关推荐
- C语言(CED)查找最接近的元素(分治法/二分查找):在一个非降序列中,查找与给定值最接近的元素。(递归实现)
(请先看置顶博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 一.题目大意 查找最接近的元素(分治法/二分查找):在一 ...
- 信息学奥赛一本通(1240:查找最接近的元素)
1240:查找最接近的元素 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 11822 通过数: 3950 [题目描述] 在一个非降序列中,查找与给定值最接 ...
- 查找最接近的元素(二分法)
一.题目大意 题目传送门 查找最接近的元素(分治法/二分查找):在一个非降序列中,查找与给定值最接近的元素. [输入] 第一行包含一个整数n,为非降序列长度. 第二行包含n个整数,为非降序列各元素. ...
- 1.11 查找最接近的元素
01:查找最接近的元素 描述 在一个非降序列中,查找与给定值最接近的元素. 输入 第一行包含一个整数n,为非降序列长度.1 <= n <= 100000. 第二行包含n个整数,为非降序列各 ...
- 二分查找python实现代码_二分查找——Python实现
一.排序思想 二.python实现 def binarySearchDemo(arr, key): """ python二分查找非递归方式 :param arr:待排序列 ...
- (王道408考研数据结构)第七章查找-第二节2:二分查找及其判定树
文章目录 一:二分查找法基本思想 二:二分查找法代码 三:二分查找法效率分析 三:二分查找判定树的构造 (1)规律 (2)构造 (3)特点 (4)时间复杂度 一:二分查找法基本思想 二分查找法(Bin ...
- 14、查找最接近的元素
在一个非降序列中,查找与蒜头君的给定值最接近的元素. 输入格式 第一行包含一个整数 n,为非降序列长度.1≤n≤100000. 第二行包含 n个整数,为非降序列各元素.所有元素的大小均在 0∼1,00 ...
- java数组二分查找的简单例题_Java基础-练习 数组元素二分查找(折半查找)
图解: 二分折半查找使用前提是数组是有序. 题目分析: 通过观察发现,本题目要实现查找指定数值在元素有序的数组中存储的位置(索引),返回该位置(索引). 我们使用数组最中间位置的元素值与要查找的指定数 ...
- 查找最接近的元素(信息学奥赛一本通-T1240)
[题目描述] 在一个非降序列中,查找与给定值最接近的元素. [输入] 第一行包含一个整数n,为非降序列长度.1 ≤ n ≤ 100000. 第二行包含n个整数,为非降序列各元素.所有元素的大小均在0- ...
最新文章
- pandas中DataFrame的apply()方法和applymap()方法,以及python内置函数map()
- Linux awk的 if语句,AWK if(条件)语句与循环简介
- db2 修改表空间自增长_什么是表?什么是表空间?什么是MySQL的表空间?
- igxe查询交易机器人_区块链数字货币交易所开发功能技术解决方案 | 拾里郎
- ctfshow-萌新-web6( 利用二进制绕过获取网站敏感信息)
- 数据-第12课-线性表课后练习
- 安卓手机上最好用的3个azw3阅读器
- face_recognition 人脸识别
- 积分变现|积分变现如何效益最大化?信用卡积分如何快速变现?
- 英语绕口令大全 练习你的口语
- 记一次菜鸟网络电话面试
- html中div的覆盖,CSS中如何使div覆盖另一个div的实例
- 整数的分类处理 C++
- 医院应如何有效实施迅速合理的安全疏散系统
- bedgraph文件转bigwig文件
- 模式识别研究生:三维点云从零开始学习
- matlab激光操纵控制系统设计,某激光操作控制系统的滞后校正
- Jenkins使用过程遇到的问题记录
- 通过具体的例子说明一维和二维的相关运算、卷积运算究竟是怎么做的。
- rebar3简单使用
热门文章
- [转载] 蓝胡子国王的金钥匙
- 如何使用GDAL进行图像镶嵌
- Android Studio 设置HTTP代理无法取消的问题
- 几种ELK常见的架构模式
- 使用yaml文件创建deployment来部署一个应用程序到k8s集群
- 用友u8怎么导出凭证_CASE11 用友U8导入期初档案凭证批量作废编辑自动现流(5/5)...
- RabbitMQ基础进阶教程
- request如何获取请求路径方法
- android调用完自己写的app之后如何返回原来的android应用_App逆向篇 神器之 Frida...
- 获取公司的maven库 和 idea maven 中Projects Settings的Libraries中正常,但是在Maven Projects中Dependencies一直出现红线的解决办法