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; } };