首页 > 试题广场 >

最接近的K个元素

[编程题]最接近的K个元素
  • 热度指数:557 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个长度为 n 的升序数组 nums 和两个整数 k 和 x ,从数组中找到最接近 x (两数之差最小)的 k 个数并升序得输出他们。

整数 a 比整数 b 更接近 x 需要满足
|a-x| < |b-x| ,
|a-x| = |b-x| 时 a < b

数据范围:
示例1

输入

[1,2,3,4,5],4,4

输出

[2,3,4,5]
示例2

输入

[1,2,3,4,5],4,3

输出

[1,2,3,4]
示例3

输入

[1,2,3,4],4,0

输出

[1,2,3,4]
头像 xinychan
发表于 2022-12-13 01:08:52
思路:1-所有数据先减x;再取绝对值;得到与x之差的数组,且均为正整数2-在x之差的数组中,找到数值最小的数;记录下标3-最小值下标为中心,双指针法移动,获取k个数;保存这k个数的下标4-对下标进行排序,然后按照下标到 nums 取出数据import java.util 展开全文
头像 fred-coder
发表于 2022-05-06 23:17:37
根据 |xi - x| 和 xi 大小进行排序,取前 k 个值 # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param nums int整型一维数组 # @param k int整型 # @param x int整型 # @return i 展开全文
头像 终将成为大佬
发表于 2024-03-18 19:24:36
#include <vector> class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型vector 展开全文

问题信息

难度:
5条回答 1804浏览

热门推荐

通过挑战的用户

查看代码