当前位置: 首页 > news >正文

商务网站建设总结成都手工活外发加工网

商务网站建设总结,成都手工活外发加工网,招聘网站开发背景,广告公司取什么名字好题目描述 在一个非降序列中&#xff0c;查找与给定值最接近的元素。 输入格式 第一行包含一个整数n&#xff0c;为非降序列长度。1 < n < 100000。 第二行包含n个整数&#xff0c;为非降序列各元素。所有元素的大小均在0-1,000,000,000之间。 第三行包含一个整数m&#x…

题目描述
在一个非降序列中,查找与给定值最接近的元素。
输入格式
第一行包含一个整数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

解题思路:
经过二分查找后,low和high分别会指向比 x 大和比 x 小的元素,计算这两个元素到 x 的距离,返回更小的那个元素值,不清楚的话可以在代码中打印出经过循环后的low和high值。
注意边界的情况!
假设列表是 [2,5,8]
例如查找的是10,low最后为3,high为2,此时直接返回列表最后一个元素即可;
如果查找的是-1,high最后的取值为-1,low为0,此时直接返回列表第一个值即可。

# 数据的输入
n = int(input())
list1 = list(map(int, input().split()))
m = int(input())def find_closest(li, x):low = 0high = len(li) - 1while low <= high:mid = (low + high) // 2if list1[mid] == x:return list1[mid]elif list1[mid] < x:low = mid + 1else:high = mid - 1# 经过二分查找后,low和high分别会指向比 x 大和比 x 小的元素# 计算这两个元素到 x 的距离,返回更小的那个元素值if low >= len(li):return li[-1]elif high < 0:return li[0]elif abs(li[low] - x) < abs(li[high] - x):return li[low]else:return li[high]for i in range(m):x = int(input())print(find_closest(list1, x))
http://www.yayakq.cn/news/470294/

相关文章:

  • 软件销售网站模板wordpress为什么加载速度很慢
  • 群晖nas可以做网站精准信息300099
  • 哪里有做区块链网站的滁州网站设计
  • 网站应该如何进行优化蓝鸟E4A做网站程序
  • 四川住房城乡建设厅网站首页北京朝阳区地图高清版大图
  • 莆田中小企业网站制作南京网站建设小程序开发 雷仁网络
  • 重庆需要网站建设从搜索引擎访问网站
  • react做的电商网站能上线吗果酱wordpress
  • 小米果怎么做视频网站扫二维码直接进网站怎么做
  • 北京网站建设有哪些公司好南昌网站建设讯息
  • 哪个公司做网站比较好注册公司上海
  • 公司商城网站建设深圳建设网站的公司简介
  • 温州网站建设联系电话微信小程序开店需要多少钱
  • 中天建设网站网站排名张家港
  • 百度官方网站登录网站名是什么
  • 北京网络公司注册深圳百度seo哪家好
  • 兰州网站建设慕枫宜宾市珙县住房城乡建设网站
  • 网站建设技术氵金手指排名26德勤管理咨询
  • 财务管理做的好的门户网站网站可信度建设
  • 中国国家建设部网站网站搭建平台
  • 功能分类模块类型网站wordpress 转移数据库
  • 深圳做网站的公司排名黄骅市属于
  • 付第三期网站建设费的账务处理jquery 网站源码
  • 网站建设中扒站为什么是违法的本地网站可以做吗
  • 网站服务器证书过期怎么解决居然设计家官网
  • 做网站诊断步骤响应式网站导航栏内容
  • 建设网站的工作步骤建网站需求
  • 淄博网站建设讲解透彻wordpress项目下载
  • 禄丰网站建设爱做片视频网站
  • 做网站主要用什么软件万网免费建企业网站