class Solution {
public:
int getStandard(vector<int>& array, int low, int high)
{
int key = array[low];
while(low < high)
{
while(low < high && array[high] >= key)
{
high--;
}
if (low < high)
{
array[low] = array[high];
}
while(low < high && array[low] <= key)
{
low++;
}
if (low < high)
{
array[high] = array[low];
}
}
array[low] = key;
return low;
}
void quickSort(vector<int>& array, int low, int high)
{
if (low < high)
{
int standard = getStandard(array, low, high);
quickSort(array, low, standard - 1);
quickSort(array, standard + 1, high);
}
}
vector<int> GetLeastNumbers_Solution(vector<int> input, int k) {
int len = input.size();
if (k > len)
{
return { };
}
quickSort(input, 0, len - 1);
vector<int> arr;
for(int i = 0; i < k; i++)
arr.push_back(input[i]);
return arr;
}
};