lc215数组中的第k个最大元素
class Solution {
public int findKthLargest(int[] nums, int k) {
int res = quickSort(nums,0,nums.length-1,nums.length-k);
return res;
}
public static int quickSort(int[] m,int l,int r,int k){
if(l==r) return m[k]; //只要某次划分的q为倒数第k个下标的时候,我们就已经找到了答案
int i=l-1,j=r+1,x=m[(l+r)>>1]; //x的最终位置是q
while(i<j){
do i++; while(m[i]<x);
do j--; while(m[j]>x);
if(i<j){
int t=m[i];
m[i]=m[j];
m[j]=t;
}
}
if(k<=j) return quickSort(m,l,j,k); //缩短区间
else return quickSort(m,j+1,r,k);
}
}