215. Kth Largest Element in an Array
LeetCode | Medium | 215. Kth Largest Element in an Array
题目:数组中第 K 个最大的数
Input: [3,2,1,5,6,4] and k = 2
Output: 5算法思路
C 语言实现
int Partition(int* a, int left, int right){
int pivot = a[left];
while(left<right){
while(left<right&&a[right]<=pivot)right--;
a[left] = a[right];
while(left<right&&a[left]>=pivot)left++;
a[right] = a[left];
}
a[left] = pivot;
return left;
}
void QuickSortK(int* a, int left, int right, int k){
if(left<right){
int pivotpos = Partition(a, left, right);
if(pivotpos>=k)
QuickSortK(a, left, pivotpos-1, k);
else
QuickSortK(a, pivotpos+1, right, k);
}
}
int findKthLargest(int* nums, int numsSize, int k){
QuickSortK(nums, 0, numsSize-1, k);
return nums[k-1];
}Last updated