1. 程式人生 > >劍指offer第二十九題【最小的K個數】c++實現

劍指offer第二十九題【最小的K個數】c++實現

題目描述

輸入n個整數,找出其中最小的K個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,。

方法比較多,我直接用的set,然後取前k個就行了

vector<int> GetLeastNumbers_Solution(vector<int> input, int k) {
    vector<int> res;
    if(input.empty()||k>input.size()){
        return res;
    }
    set<int> s;
    for(int i=0;i<input.size();i++){
        s.insert(input[i]);
    }
    set<int>::iterator it;
    int count=0;
    for(it=s.begin();count<k;count++,it++){
        res.push_back(*it);
    }
    return res;
}