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 }
  • 相关阅读:
    CSUFT 1002 Robot Navigation
    CSUFT 1003 All Your Base
    Uva 1599 最佳路径
    Uva 10129 单词
    欧拉回路
    Uva 10305 给任务排序
    uva 816 Abbott的复仇
    Uva 1103 古代象形文字
    Uva 10118 免费糖果
    Uva 725 除法
  • 原文地址:https://www.cnblogs.com/codeskiller/p/6509515.html
Copyright © 2011-2022 走看看