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 查找最接近的元素【二分查找】相关推荐

  1. C语言(CED)查找最接近的元素(分治法/二分查找):在一个非降序列中,查找与给定值最接近的元素。(递归实现)

    (请先看置顶博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 一.题目大意 查找最接近的元素(分治法/二分查找):在一 ...

  2. 信息学奥赛一本通(1240:查找最接近的元素)

    1240:查找最接近的元素 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 11822     通过数: 3950 [题目描述] 在一个非降序列中,查找与给定值最接 ...

  3. 查找最接近的元素(二分法)

    一.题目大意 题目传送门 查找最接近的元素(分治法/二分查找):在一个非降序列中,查找与给定值最接近的元素. [输入] 第一行包含一个整数n,为非降序列长度. 第二行包含n个整数,为非降序列各元素. ...

  4. 1.11 查找最接近的元素

    01:查找最接近的元素 描述 在一个非降序列中,查找与给定值最接近的元素. 输入 第一行包含一个整数n,为非降序列长度.1 <= n <= 100000. 第二行包含n个整数,为非降序列各 ...

  5. 二分查找python实现代码_二分查找——Python实现

    一.排序思想 二.python实现 def binarySearchDemo(arr, key): """ python二分查找非递归方式 :param arr:待排序列 ...

  6. (王道408考研数据结构)第七章查找-第二节2:二分查找及其判定树

    文章目录 一:二分查找法基本思想 二:二分查找法代码 三:二分查找法效率分析 三:二分查找判定树的构造 (1)规律 (2)构造 (3)特点 (4)时间复杂度 一:二分查找法基本思想 二分查找法(Bin ...

  7. 14、查找最接近的元素

    在一个非降序列中,查找与蒜头君的给定值最接近的元素. 输入格式 第一行包含一个整数 n,为非降序列长度.1≤n≤100000. 第二行包含 n个整数,为非降序列各元素.所有元素的大小均在 0∼1,00 ...

  8. java数组二分查找的简单例题_Java基础-练习 数组元素二分查找(折半查找)

    图解: 二分折半查找使用前提是数组是有序. 题目分析: 通过观察发现,本题目要实现查找指定数值在元素有序的数组中存储的位置(索引),返回该位置(索引). 我们使用数组最中间位置的元素值与要查找的指定数 ...

  9. 查找最接近的元素(信息学奥赛一本通-T1240)

    [题目描述] 在一个非降序列中,查找与给定值最接近的元素. [输入] 第一行包含一个整数n,为非降序列长度.1 ≤ n ≤ 100000. 第二行包含n个整数,为非降序列各元素.所有元素的大小均在0- ...

最新文章

  1. pandas中DataFrame的apply()方法和applymap()方法,以及python内置函数map()
  2. Linux awk的 if语句,AWK if(条件)语句与循环简介
  3. db2 修改表空间自增长_什么是表?什么是表空间?什么是MySQL的表空间?
  4. igxe查询交易机器人_区块链数字货币交易所开发功能技术解决方案 | 拾里郎
  5. ctfshow-萌新-web6( 利用二进制绕过获取网站敏感信息)
  6. 数据-第12课-线性表课后练习
  7. 安卓手机上最好用的3个azw3阅读器
  8. face_recognition 人脸识别
  9. 积分变现|积分变现如何效益最大化?信用卡积分如何快速变现?
  10. 英语绕口令大全 练习你的口语
  11. 记一次菜鸟网络电话面试
  12. html中div的覆盖,CSS中如何使div覆盖另一个div的实例
  13. 整数的分类处理 C++
  14. 医院应如何有效实施迅速合理的安全疏散系统
  15. bedgraph文件转bigwig文件
  16. 模式识别研究生:三维点云从零开始学习
  17. matlab激光操纵控制系统设计,某激光操作控制系统的滞后校正
  18. Jenkins使用过程遇到的问题记录
  19. 通过具体的例子说明一维和二维的相关运算、卷积运算究竟是怎么做的。
  20. rebar3简单使用

热门文章

  1. [转载] 蓝胡子国王的金钥匙
  2. 如何使用GDAL进行图像镶嵌
  3. Android Studio 设置HTTP代理无法取消的问题
  4. 几种ELK常见的架构模式
  5. 使用yaml文件创建deployment来部署一个应用程序到k8s集群
  6. 用友u8怎么导出凭证_CASE11 用友U8导入期初档案凭证批量作废编辑自动现流(5/5)...
  7. RabbitMQ基础进阶教程
  8. request如何获取请求路径方法
  9. android调用完自己写的app之后如何返回原来的android应用_App逆向篇 神器之 Frida...
  10. 获取公司的maven库 和 idea maven 中Projects Settings的Libraries中正常,但是在Maven Projects中Dependencies一直出现红线的解决办法