需求描述:给定整数数组nums和整数k,请返回数组中第k个最大的元素。请注意你需要查找的是数组排序后第k个最大的元素,而不是第k个不同的元素
解题分析:需要先对数组进行快速排序(升序),再去查找倒数第k个元素。需要注意的是倒数第k个元素是下标为 numsSize-k 的元素,而不下标为 numsSize-k-1 的元素
int main() {
int nums[6] = {3,2,1,5,6,4};
int res = findKthLargest(nums, 6, 2);
printf("res : %d\n",res);
return 0;
}
#pragma mark - 数组中的第K个最大元素
int compare(const void* a,const void* b) {
return *(int*)a - *(int*)b;
}
int findKthLargest(int* nums, int numsSize, int k) {
int res = 0;
qsort(nums, numsSize, sizeof(int), &compare);
res = nums[numsSize - k];
return res;
}