需求描述:给定整数数组nums和整数k,请返回数组中第k个最大的元素。请注意你需要查找的是数组排序后第k个最大的元素,而不是第k个不同的元素

leetcode数组的元素修改(LeetCode数组中的第K个最大元素215)(1)

解题分析:需要先对数组进行快速排序(升序),再去查找倒数第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; }

,