首页 > 试题广场 >

找到 K 个最接近的元素

[编程题]找到 K 个最接近的元素
  • 热度指数:950 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
给定一个排序好的数组,两个整数 k 和 x,从数组中找到最靠近 x(两数之差最小)的 k 个数。
返回的结果必须要是按升序排好的。
如果有两个数与 x 的差值一样,优先选择数值较小的那个数。

输入描述:
第一行为排序好的数组arr
第二行为查找的个数k
第三行为基准值x


输出描述:
按升序排好的的数组
示例1

输入

1,2,3,4,5
4
3

输出

1,2,3,4

说明

k 的值为正数,且总是小于给定排序数组的长度
数组不为空,且长度不超过 104
数组里的每个元素与 x 的绝对值不超过 104
s=list(map(int,input().split(",")))
ls=[]
k=int(input())
x=int(input())
for i in range(len(s)):
  ls.append((i,s[i]-x))
ls.sort(key=lambda x:x[1])
for i in range(k-1):
    print(s[i],end=",")
print(s[k-1])


发表于 2021-03-01 21:08:22 回复(1)