剑指offer 面试题40 最小的K个数

问题:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,

输入:数组,K

输出:最小的K个数

思路:

思路一(可以修改数组)基于Partition函数O(n)

思路二 基于priority_queue(大顶堆)时间复杂度为O(nlogk)

class Solution {
public:
    vector GetLeastNumbers_Solution(vector input, int k) {
        priority_queue bigHeap;
        int i=0;
        int len=input.size();
        if(k==0||len res(k);
        for(int j=0;j

 

你可能感兴趣的:(剑指offer)