给你一个非空数组,返回此数组中 第三大的数 。如果不存在,则返回数组中最大的数。
示例 1:
输入:[3, 2, 1]
输出:1
解释:第三大的数是 1 。
int cmp(const void *a, const void *b) {
return *(int*)a < *(int*)b;
}
int thirdMax(int* nums, int numsSize){
qsort(nums, numsSize, sizeof(nums[0]), cmp);
int diff = 0;
for (int i = 1; i < numsSize; i++) {
if (nums[i] != nums[i - 1] && ++diff == 2) {//两个不同相当于递减了一下,++diff相当于递减两下也就是第三大数//
return nums[i];
}
}
return nums[0];
}