leetcode-Kth Largest Element in an Array-215
Posted 0_summer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode-Kth Largest Element in an Array-215相关的知识,希望对你有一定的参考价值。
输入一个数组,求第k大的数
利用快排,因为快排的每一轮递归使一个元素归位,所以判断当前归位的元素是否是第k个,若是,返回
1 class Solution { 2 public: 3 void quick(vector<int> &a,int low,int high,int k){ 4 int i=low,j=high-1; 5 int tmp=a[i]; 6 while(i<j){ 7 while(i<j&&a[j]>=tmp) j--; 8 a[i]=a[j]; 9 while(i<j&&a[i]<=tmp) i++; 10 a[j]=a[i]; 11 } 12 a[i]=tmp; 13 if(i==a.size()-k) return; 14 if(i>low) quick(a,low,i,k); 15 if(i+1<high) quick(a,i+1,high,k); 16 } 17 int findKthLargest(vector<int>& nums, int k) { 18 if(nums.size()<k) return -1; 19 quick(nums,0,nums.size(),k); 20 return nums[nums.size()-k]; 21 } 22 };
以上是关于leetcode-Kth Largest Element in an Array-215的主要内容,如果未能解决你的问题,请参考以下文章
703. Kth Largest Element in a Stream/215. Kth Largest Element in an Array/