给你一个非空数组,返回此数组中 第三大的数 。如果不存在,则返回数组中最大的数。
示例 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];
}
本文介绍了一种通过排序和比较来找到非空整数数组中第三大元素的方法。若数组中不存在第三大元素,则返回最大元素。示例代码使用了快速排序算法进行排序,并通过遍历检查数组中不同元素的数量来确定第三大元素。

被折叠的 条评论
为什么被折叠?



