class Solution {
public:
void build(vector<int> &in, int begin){
int len = in.size() - begin;
if (len <= 0) return;
for (int i = len-1; i>=begin; i--){
int f_index = (i+begin-1)/2;
if (in[i]<in[f_index]){
swap(in[i],in[f_index]);
}
}
}
vector<int> GetLeastNumbers_Solution(vector<int> input, int k) {
int len = input.size();
if (len == 0 || len < k){
vector<int> b;
return b;
}
for (int i = 0; i < k; i++){
build(input, i);
}
vector<int> res(input.begin(), input.begin()+k);
return res;
}
};