1,题目
给你一个非空数组,返回此数组中 第三大的数 。如果不存在,则返回数组中最大的数。
2,代码
快速降排法
int cmp(const void *a, const void *b){ //降序排序
return *(int*)a < *(int*)b;
}
int thirdMax(int* nums, int numsSize){
qsort(nums, numsSize, sizeof(int), cmp);
int count = 1;
for (int i = 1; i < numsSize; i++){
if (nums[i] != nums[i - 1]){
count ++;
if (count == 3)
return nums[i];
}
}
return nums[0];
}