leetcode:414. 第三大的数

一、题目

leetcode:414. 第三大的数_第1张图片

 

函数原型:int thirdMax(int* nums, int numsSize)

二、思路

 将数组降序排序。

如果数组元素个数小于3,直接返回第一个元素;

如果数组元素个数大于等于3,且不同元素个数小于3,直接返回第一个元素;

如果数组元素个数大于等于3,且不同元素个数大于等于3,遍历数组,直到遇到第三大的数(注意不是第三个数,因为前面个很可能有多个相同的数)。

三、代码

int cmp(const void *e1,const void *e2)
{
    return *(int*)e2>*(int*)e1;
}
int thirdMax(int* nums, int numsSize)
{
    qsort(nums,numsSize,sizeof(int),cmp);//降序排序数组
    if(numsSize<3)//数组元素个数小于3
    {
        return nums[0];
    }
    else//数组元素个数大于等于3
    {
        int i=0;//下标,遍历数组
        int j=1;//计数器,统计遇到不同数的个数
        for(i=0;i

你可能感兴趣的:(leetcode刷题训练营,leetcode,算法,数据结构)