给定一个非空数组,返回此数组中第三大的数。如果不存在,则返回数组中最大的数。要求算法时间复杂度必须是O(n)。

示例 1:

输入: [3, 2, 1]

输出: 1

解释: 第三大的数是 1.
示例 2:

输入: [1, 2]

输出: 2

解释: 第三大的数不存在, 所以返回最大的数 2 .
示例 3:

输入: [2, 2, 3, 1]

输出: 1

解释: 注意,要求返回第三大的数,是指第三大且唯一出现的数。
存在两个值为2的数,它们都排第二。

思路1:见代码,分情况即可。记得特殊处理第三小正好是Integer.MIN_VALUE的情况。

class Solution {public int thirdMax(int[] nums) {int first=Integer.MIN_VALUE;int second=Integer.MIN_VALUE;int third=Integer.MIN_VALUE;int sum=0;boolean bool=false;for(int i:nums){if(i==Integer.MIN_VALUE)bool=true;if(i==first || i==second || i==third)continue;if(i>first){third=second;second=first;first=i;sum++;}else if(i>second){third=second;second=i;sum++;}else if(i>third){third=i;sum++;}}if(sum>2){return third;}else if(sum==2 && bool){return third;}else{return first;}}
}

leetcode414. 第三大的数相关推荐

  1. [Swift]LeetCode414. 第三大的数 | Third Maximum Number

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...

  2. 【LeetCode】414. 第三大的数

    给定一个非空数组,返回此数组中第三大的数.如果不存在,则返回数组中最大的数.要求算法时间复杂度必须是O(n). 示例 1: 输入: [3, 2, 1]输出: 1解释: 第三大的数是 1. 示例 2: ...

  3. 【LeetCode】414.第三大的数

    题目描述 给定一个非空数组,返回此数组中第三大的数.如果不存在,则返回数组中最大的数.要求算法时间复杂度必须是O(n). 示例 示例 1: 输入: [3, 2, 1] 输出: 1 解释: 第三大的数是 ...

  4. ajax 最大链接数_leetcode之第三大的数

    序 本文主要研究一下leetcode之第三大的数 题目 给定一个非空数组,返回此数组中第三大的数.如果不存在,则返回数组中最大的数.要求算法时间复杂度必须是O(n).示例 1:输入: [3, 2, 1 ...

  5. LeetCode Algorithm 414. 第三大的数

    414. 第三大的数 Ideas emmmm,内置排序算法YYDS,三行代码解决. Code C++ class Solution {public:int thirdMax(vector<int ...

  6. leetcode|第三大的数java题解

    由于在面试作业帮.好未来侧开实习面试的时候都被问到了这道题,所以我就来写个题解吧 给你一个非空数组,返回此数组中 第三大的数 .如果不存在,则返回数组中最大的数. 示例 1: 输入:[3, 2, 1] ...

  7. 414. 第三大的数

    给你一个非空数组,返回此数组中 第三大的数 .如果不存在,则返回数组中最大的数 方法一 首先将数组排序,然后通过集合去除重复的元素,最后进行一次判断,选择第三大元素还是最大元素 class Solut ...

  8. C#LeetCode刷题之#414-第三大的数(Third Maximum Number)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3710 访问. 给定一个非空数组,返回此数组中第三大的数.如果不存 ...

  9. [Leetcode] 414. 第三大的数

    题目描述: 给定一个非空数组,返回此数组中第三大的数.如果不存在,则返回数组中最大的数.要求算法时间复杂度必须是O(n). 示例 1: 输入: [3, 2, 1]输出: 1解释: 第三大的数是 1. ...

最新文章

  1. 洛谷 P1318 积水面积
  2. IEEE802.11协议栈
  3. Python测试程序用时时长(运行时间测试)
  4. 自动化测试——接口自动化——requests用法
  5. Maven项目添加ojdbc8
  6. 100m光纤测速多少正常_100m光纤测速多少正常 所以100M宽带最大下载速度
  7. 倾斜摄影——3维建模软件PhotoScan教程(附安装包+教学视频)
  8. 该弱磁算法采用单电流控制策略,额定转速以下采用MTPA控制,额定转速以上采用单电流控制
  9. android不透明度对应的值
  10. 数据可视化大屏案例系列 2
  11. 怎样建立个人邮箱账号?个人邮箱有什么功能?
  12. Linux 5300AGN网卡驱动,t400 wifi link 5100 AGN linux驱动安装
  13. 【Java】 Java 实现 2048 小游戏
  14. 一文带你浅入浅出Keepalived
  15. Vue2积分商城PC端项目(六)
  16. 审核工作流程图、在线流程图、审批流程设计、在线绘图
  17. Freemarker源码分析(9)core.JSONParser类
  18. LY68L6400SLIT 编带
  19. Google将Linux客户端研发的主力放到中国
  20. 图像配准(Image Registration)——深度学习方法

热门文章

  1. 怎么用计算机打分数,电脑excel中分数怎么打出来(图解excel分数输入法)
  2. 详细介绍Qt,ffmpeg 和SDl 教程之间的联系
  3. 解决 avformat_alloc_context无法识别的问题
  4. WINCE的BIB文件解析
  5. 获取WinCE已加载驱动的信息
  6. 群晖docker签到京豆_利用Synology(群晖)Docker安装签到框架
  7. C#进阶之WebAPI(二)
  8. 第十七节:易混淆的概念(静态和非静态、拆箱和装箱)
  9. sql server登录名、服务器角色、数据库用户、数据库角色、架构区别联系**
  10. c语言3种链接属性: 外部(external), 内部(internal),无设置(none)