zoukankan      html  css  js  c++  java
  • 414. Third Maximum Number

    Given a non-empty array of integers, return the third maximum number in this array. If it does not exist, return the maximum number. The time complexity must be in O(n).

    Example 1:

    Input: [3, 2, 1]
    
    Output: 1
    
    Explanation: The third maximum is 1.
    

    Example 2:

    Input: [1, 2]
    
    Output: 2
    
    Explanation: The third maximum does not exist, so the maximum (2) is returned instead.
    

    Example 3:

    Input: [2, 2, 3, 1]
    
    Output: 1
    
    Explanation: Note that the third maximum here means the third maximum distinct number.
    Both numbers with value 2 are both considered as second maximum.

    本题注意点是nums数组不是空集,本题考查Integer的特点,值得注意的是其equals的方法:比较此对象与指定对象。当且仅当参数不为 null,并且是一个与该对象包含相同 int 值的 Integer 对象时,结果为 true
    代码如下:
     1 public class Solution {
     2     public int thirdMax(int[] nums) {
     3         Integer max1 = null;
     4         Integer max2 = null;
     5         Integer max3 = null;
     6         for(Integer n:nums){
     7             if(n.equals(max1)||n.equals(max2)||n.equals(max3)) continue;
     8             if(max1==null||n>max1){
     9                 max3 = max2;
    10                 max2 = max1;
    11                 max1 = n;
    12             }else if(max2==null||n>max2){
    13                 max3 = max2;
    14                 max2 = n;
    15             }else if(max3==null||n>max3){
    16                 max3 = n;
    17             }
    18         }
    19         return max3==null?max1:max3;
    20     }
    21 }
  • 相关阅读:
    java学习day03-循环结构
    java学习day03-运算符+分支结构
    java学习day02-标识符+关键字+注释+变量
    java学习day02-数据类型
    java学习day01-认识Java语言Hello world!
    私有仓库
    服务编排
    镜像原理
    docker部署应用
    docker数据卷和数据卷容器
  • 原文地址:https://www.cnblogs.com/codeskiller/p/6509515.html
Copyright © 2011-2022 走看看