zhuifeng66666 2021-12-09 00:18 采纳率: 50%
浏览 43
已结题

给定一条线上的 n 个不同的点和 q 个查询。 找到查询点与给定点中最近的点。用Python编写

给定一条线上的 n 个不同点和 q 个查询。 查询是您需要从给定点中找到最近点的点。 所有点都位于 x 轴 (y = 0) 上。
这些点由它们的 x 坐标给出。
输入第一行包含一个整数 n (1 < n < 50,000)点的数量。
第二行包含 n 个整数 x1 x2 …xn点的坐标。
第三行包含 整数 m (1<m<50,000)点数。
接下来 m 行的 i^{th} 包含一个整数 pi,x。
保证每个坐标的绝对值不超过 10^6
输出为最近点的每个点 p_i 坐标打印一条消息。
如果有几个这样的点,打印任何一个。

例子

例子
#标准输入
6#(已知的点的数量)
-7 3 8 12 -3 -10#(已知的点的坐标)
5#(查询点的数量)
-12 #(离-10最近 输出-10)
13 #(离12最近 输出12)
5
-2
0 #(离3和-3一样进,输出任意一个)
#标准输出
-10
12
3
-3
3
 
  • 写回答

1条回答 默认 最新

  • 关注

    列表排序之后逐个比较多即可
    你题目的解答代码如下:

    n = int(input())
    li = list(map(int,input().split()))
    li.sort()
    m = int(input())
    for i in range(m):
        q = int(input())
        for i,v in enumerate(li):
            if v >= q:
                break
        if i>0 and li[i]-q > q-li[i-1]:
            i = i-1
        print(li[i])
    

    img

    如有帮助,望采纳!谢谢!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月17日
  • 已采纳回答 12月9日
  • 创建了问题 12月9日

悬赏问题

  • ¥15 在不同的执行界面调用同一个页面
  • ¥20 基于51单片机的数字频率计
  • ¥50 M3T长焦相机如何标定以及正射影像拼接问题
  • ¥15 keepalived的虚拟VIP地址 ping -s 发包测试,只能通过1472字节以下的数据包(相关搜索:静态路由)
  • ¥20 关于#stm32#的问题:STM32串口发送问题,偶校验(even),发送5A 41 FB 20.烧录程序后发现串口助手读到的是5A 41 7B A0
  • ¥15 C++map释放不掉
  • ¥15 Mabatis查询数据
  • ¥15 想知道lingo目标函数中求和公式上标是变量情况如何求解
  • ¥15 关于E22-400T22S的LORA模块的通信问题
  • ¥15 求用二阶有源低通滤波将3khz方波转为正弦波的电路