题解 | #寻找第K大#
寻找第K大
https://www.nowcoder.com/practice/e016ad9b7f0b45048c58a9f27ba618bf
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param a int整型vector * @param n int整型 * @param K int整型 * @return int整型 */ void QuickSort(vector<int>& arr,int start,int end) { if(start < end) { int mid = Split(arr, start, end); QuickSort(arr, start, mid-1); QuickSort(arr,mid+1,end); } } int Split(vector<int>& arr,int start,int end) { int pivot = arr[start]; while(start < end) { while(arr[end] > pivot && start < end) { end--; } if(start < end) { swap(arr[end],arr[start++]); } while(arr[start] <= pivot && start < end) { start++; } if(start < end) { swap(arr[start],arr[end--]); } } return start; } int findKth(vector<int>& a, int n, int K) { // write code here QuickSort(a, 0, n-1); return a[n-K]; } };