1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| class Solution { public: int findKthLargest(vector<int>& nums, int k) {
vector<int> numsSort = quick_sort(nums,0,nums.size() - 1);
return numsSort[numsSort.size() - k]; }
vector<int> quick_sort(vector<int> &nums,int l,int r) {
if (l > r) return {};
int first = l,last = r,key = nums[first];
while (first < last) {
while (first < last && nums[last] >= key) { --last; } nums[first] = nums[last];
while (first < last && nums[first] <= key) { ++first; } nums[last] = nums[first]; }
nums[first] = key; quick_sort(nums,l,first - 1); quick_sort(nums,first + 1,r);
return nums; } };
|