leetcode:414. 第三大的数

简介: leetcode:414. 第三大的数

一、题目

 

函数原型: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<numsSize-1;i++)
        {
            if(j==3)//遇到第三大的数且与前面的数字都不相同
                break;
            if(nums[i+1]!=nums[i])
                j++;
        }
        if(j<3)//虽然数组元素个数大于等于3,但是不同的数小于3,因此和数组元素小于3的结果一样
            return nums[0];
        else//数组元素个数大于等于3,且不同数的个数也大于等于3
            return nums[i];
    }
}



目录
相关文章
|
Linux iOS开发 开发者
探索FFmpeg:实现自定义播放速度的全方位指南(一)
探索FFmpeg:实现自定义播放速度的全方位指南
1339 0
|
弹性计算 运维 安全
阿里云无影云电脑——更安全可靠便宜
阿里云无影云电脑——更安全可靠便宜,什么是阿里云无影云电脑?无影云电脑(原云桌面)是一种快速构建、高效管理桌面办公环境,无影云电脑可用于远程办公、多分支机构、安全OA、短期使用、专业制图等使用场景,阿里云百科分享无影云桌面的详细介绍、租用价格、云电脑的优势、使用场景、网络架构、无影云电脑与云服务器的区别以及关于无影云电脑的常见问题解答FAQ
942 1
|
9月前
|
存储 测试技术 对象存储
使用容器服务ACK快速部署QwQ-32B模型并实现推理智能路由
阿里云最新发布的QwQ-32B模型,通过强化学习大幅度提升了模型推理能力。QwQ-32B模型拥有320亿参数,其性能可以与DeepSeek-R1 671B媲美。
|
编译器 C++
《Effective C++ 改善程序与设计的55个具体做法》 第一章 笔记
《Effective C++ 改善程序与设计的55个具体做法》 第一章 笔记
164 0
|
存储 运维 数据中心
使用Docker容器化应用程序的优势与挑战
使用Docker容器化应用程序的优势与挑战
209 0
|
缓存 NoSQL 算法
Redis限流接口防刷
Redis限流接口防刷
350 0
|
C语言
扫雷游戏的实现(下)
扫雷游戏的实现(下)
160 0
|
存储 分布式计算 Hadoop
黑马程序员-大数据入门到实战-HDFS分布式存储
黑马程序员-大数据入门到实战-HDFS分布式存储
375 0
|
存储 数据采集 消息中间件
【深度】中台始作俑者Supercell的架构演进
关注公众号“达摩院首座”,了解开发者最真实生活
2573 1
【深度】中台始作俑者Supercell的架构演进
|
网络安全 Python
如何科学的使用无影云电脑
我当时整个人都高兴的跳起来了,由于坐下的时候太着急,一屁股坐在了地上,导致我之后的一段时间都只能半只屁股坐在椅子上,带薪摸鱼的难度得到大幅度提升。 作为一名网络安全领域的博主,经常用Python做一些奇怪的操作,比如爬CSDN的热榜信息,爬b站舞蹈区的小姐姐,一边爬一边感慨中国文化的博大精深
677 1
如何科学的使用无影云电脑