返回最小的k个数

Posted 王小东大将军

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了返回最小的k个数相关的知识,希望对你有一定的参考价值。

对于一个无序数组,数组中元素为互不相同的整数,请返回其中最小的k个数,顺序与原数组中元素顺序一致。

给定一个整数数组A及它的大小n,同时给定k,请返回其中最小的k个数。

测试样例:
[1,2,4,3],4,2
返回:[1,2]

1、排序
2、找到k大作为基准
3、遍历比较,小于k的输出
vector<int> findKthNumbers(vector<int> A, int n, int k) {
        vector<int> B = A;
        vector<int> ans;
        sort(B.begin(),B.end());
        for(int i=0;i<A.size();i++)
            if(A[i] <= B[k-1])
              ans.push_back(A[i]);
        return ans;
    }

  

以上是关于返回最小的k个数的主要内容,如果未能解决你的问题,请参考以下文章

NC119 最小的K个数

剑指offer-找到第k大的数,找到数组中个数超过一半的数,找到数组中最小的k个数。

剑指Offer 最小的K个数

小米笔试题:无序数组中最小的k个数

#yyds干货盘点# 解决剑指offer:最小的K个数

面试题 17.14. 最小K个数