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.
    class Solution {
        public int thirdMax(int[] A) {
            Set<Integer> set = new TreeSet();
            Queue<Integer> q = new PriorityQueue();
            for(int i: A){
                if(set.add(i)){
                    q.offer(i);
                }
                if(q.size() > 3) q.poll();
            }
            if(q.size() == 2) q.poll();
            return q.peek();
        }
    }
  • 相关阅读:
    线程
    网络编程
    正则表达式
    XML
    java----八种排序算法
    Java 关键字 速查表
    Day_19多线程(下)
    Day18_进程(中)
    Day17_进程(上)
    Day15_IO流(上)
  • 原文地址:https://www.cnblogs.com/wentiliangkaihua/p/12928214.html
Copyright © 2011-2022 走看看