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 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化