需求描述:給定整數數組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;
}
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!