suibenzhi
7/13/2018 - 3:40 PM

最小的K个数.cpp

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




vector<int> GetLeastNumbers_Solution(vector<int> input, int k) {
            size_t iSize = input.size();
         
    vector<int> vecRet;
 
    if(iSize == k) return input;
    if(iSize < k) return vecRet;
    int *count = new int[iSize];
    for(auto it = input.begin(); it != input.end(); it++)
    {
        count[*it]++;
    }
     
    int iCount = 0;
 
    for(int i = 0; i < iSize && iCount < k; i++)
    {
        if(count[i] > 0)
        {
            vecRet.push_back(i);
            iCount++;
        }
 
    }
     
    return vecRet;
}