刷题笔记-数组---求一个数组中第三大的数

2023-10-27

题目:求取一个数组中第三大的数,数组中至少有一个数据

eg   输入:a[1,2,3]      输出:1       第三大的数为1 

输入: a[1,2]    输出:2      当数组中的数据少于三个时,输出最大的数据

输入:a[1,1,3,2,3,4]   输出:2

解题思路:给出的一串数组先有两种情况:

第一种情况为当数据的个数大于或者等于3个数据,只需要考虑前三个最大的数据,首先设置三个变量:firstNum  secondNum   thirdNum;将三个变量设置为最小的数据,首先将输入的数据和最大的数据firstNum进行比较,如果firstNum < 输入数据a

则将前三个数据进行交换;如果firstNum > a && secondNum < a;先将thirdNum = secondNum,再将数据secondNum = a;如果secondNum > a && thirdNum <a;则将 thirdNum = a;

第二种情况就直接将获取的最大数据进行输出

具体代码

int thirdMax(vector<int>& nums)
{
    long long firstNum = LONG_MIN, secondNum = LONG_MIN, thirdNum = LONG_MIN;
    for (auto& a:nums)
    {
        if (firstNum < a)
        {
            thirdNum = secondNum;
            secondNum = firstNum;
            firstNum = a;
        }
        else if (firstNum > a && secondNum < a)
        {
            thirdNum = secondNum;
            secondNum = a;
        }
        if (secondNum > a && thirdNum < a)
        {
            thirdNum = a;
        }
    }

    if (thirdNum == LONG_MIN)
    {
        cout << "thirdNum == LONG_MIN" << endl;
        return firstNum;
    }
    else
    {
        cout << "return thirdNum" << endl;
        return thirdNum;
    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

刷题笔记-数组---求一个数组中第三大的数 的相关文章

随机推荐

  • 史上最全的CSP-J/S 第一轮知识点

    CSP J S 第一轮知识点选讲 NOIP 全国青少年信息学奥林匹克竞赛 于2019年取消 取而代之的是由 CCF 推出的非专业级软件能力认证 也就是现在的 CSP J S 作为一名于2019年1月入 OI 的蒟蒻 OIer 没能参加 NO
  • 前端框架 使用React 开发一个井字棋(2)React.Component组件介绍

    React 是什么 React 是一个声明式 高效且灵活的用于构建用户界面的 JavaScript 库 使用 React 可以将一些简短 独立的代码片段组合成复杂的 UI 界面 这些代码片段被称作 组件 React 中拥有多种不同类型的组件
  • matlab画一个三维图形投影的函数的图

    在 MATLAB 中 可以使用 surf 函数画出三维图形的投影图 首先 需要确定图形的 X Y 和 Z 坐标数据 然后 可以在命令窗口中输入 surf X Y Z 来绘制图形 例如 X Y meshgrid 2 2 2 Z X exp X
  • 老男孩linux培训靠谱吗?到底该不该去?

    本文由Linux运维脱产班77期学员提供 哈喽 我是老男孩Linux77期的李学员 今天给大家分享下我的成长经历 希望能为迷茫的你提供正确的方向 在来老男孩之前 我是一名设计师 经朋友介绍 报名了老男孩培训的Linux运维脱产班 经过近半年
  • tomcat日志清理全攻略

    对于 很多初做运维或转行来搞运维的同学 老板说 网站服务器空间要满了 你来处理一下 怎么处理 好吧 当然是清理过期日志之类的工作 但 对于一位刚入门的同学来说 什么是日志 日志在哪 哪些可以删除 怎么删除 一堆问题就接踵而来 简单的说一下
  • 2020-04-23

    MyEclipse 服务器请求数据中文乱码 Tomcat7 x会出现这个问题 Tomcat8以后不在出现中文乱码问题 解决方法 1 更换为Tomcat8以上的版本 2 两请求方式改为post请求方式 更改了Tomcat8以后出现项目部署过时
  • Python:最低要求

    描述 体育老师以小组为单位 考查大家的仰卧起坐的成绩 只要一个小组所有人仰卧起坐的个数之和 达到老师的要求 则整个小组就算过关 因此 程序会接收这样两个信息 一个是小组成绩清单 一个是老师的个数要求 只要小组成绩达到或超过老师的个数要求 程
  • 为什么零基础会入不了Python爬虫的门?六行代码的事就这么难吗?

    可能是小编本身就有一定的基础 当然我没有瞧不起小白的看法 知识觉得要入门一门编程语言确实比较简单 而且小编本身也是从小白过来的 但是当初接触Python爬虫的时候真的用了很短的时间 爬虫这种东西本来就是比较有兴趣的 所以学起来也比较有意思
  • 【Redis】关于过期数据清除的一些策略

    这里要讨论的为过期的数据是如何被清除的 也就是网上常常讨论的过期清除策略 需要注意的是 redis除了会对过期的数据进行淘汰 也可以通过对内存大小进行限制 并对超出内存限制后进行数据淘汰 此时淘汰的数据未必是过期的 只是因为内存达到限制而被
  • 国内常用公共DNS服务器、各省运营商DNS服务器汇总

    原文 http www francissoung com 2016 03 14 常用公共DNS服务器 主题 DNS服务器 服务器 运营商 不知道大家有没有过网络是正常的 QQ可以正常登录 游戏也可以正常玩 但是网页无论如何都打不开 这就是电
  • There are test failures. Please refer to /Users/andy_mac/CodeSpace/springboot/springboot202304/demo/

    报错信息1 There are test failures Please refer to Users andy mac CodeSpace springboot springboot202304 demo target surefire
  • LLVM设计者谈论The Design of LLVM

    原文地址 http www drdobbs com architecture and design 240001128 The Design of LLVM By Chris Lattner May 29 2012 Post a Comme
  • IOS_Swift_enum枚举方法

    本博文为子墨原创 转载请注明出处 http blog csdn net zimo2013 article details 50116811 enum Type Int case A 1 case B 3 普通方法 func toString
  • 前端之JavaScript

    目录 JS引入方式 Script标签内写代码 引入额外的js文件 JS注释 结束符 变量声明 JS数据类型 数值 number 字符串 String 布尔值 Boolean null和undefined 对象 Object forEach
  • Unity 修改场景中人型骨骼模型的骨骼旋转角度

    出自1909 ca fk 1 unity中设置 模型设置 选中asset中模型 在inspector中选中Rig 取消 Optimize Game Object 的勾选 如果需要获取游戏运行过程中模型各个骨骼的transform 则必须取消
  • jieba分词出现如下错误:AttributeError: 'float' object has no attribute 'decode'

    在利用结巴 jieba 进行分词时出现如下错误 AttributeError float object has no attribute decode 真实挺无语的 当读取编码为utf8时不会报错 当读取为gbk时会报这类错误 这个可以解决
  • fabric中链码关于缺少go的包依赖问题的解决方法

    我们可以在cmd中下载依赖包 go get github com hyperledger fabric common util v1 4 go get github com hyperledger fabric core chaincode
  • dubbo 负载策略,容错策略等常见问题

    目录 一 dubbo 概述 dubbo中的角色分析 dubbo 以 Zookeeper作为注册中心时的执行流程 dubbo 负载均衡策略 xml 方式配置负载均衡策略 SpringBoot yml 文件配置 dubbo 负载配置示例 dub
  • react实现拖拽排序(菜单+视频+图片等)

    DOM结构部分 拖动菜单部分 div div menuList length gt 0 menuList map item i gt div div
  • 刷题笔记-数组---求一个数组中第三大的数

    题目 求取一个数组中第三大的数 数组中至少有一个数据 eg 输入 a 1 2 3 输出 1 第三大的数为1 输入 a 1 2 输出 2 当数组中的数据少于三个时 输出最大的数据 输入 a 1 1 3 2 3 4 输出 2 解题思路 给出的一