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

    #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.
    

       题解:这道题要找到第三大的数,我用了set,避免同一元素出现多次,定义反向迭代器,之后判断set中有多少个元素,小于三个时直接返回最大值,否则反向迭代就可以找到第三大的值了,时间复杂度是O(n)

    class Solution {
    public:
        int thirdMax(vector<int>& nums) {
            set<int> num;
            for(int i=0;i<nums.size();i++)
            {
                num.insert(nums[i]);
            }
            set<int>::reverse_iterator it=num.rbegin();
            if(num.size()<3)
               return *it; 
               
            it++;
            it++;
            return *it;
        }
    };
  • 相关阅读:
    综合:bool类型 命名空间 输入输出
    C++命名空间
    C++输入输出
    C++新特性
    C++ IDE环境
    C++简介
    3 python3 编码解码问题 upd接受数据
    2 socket UDP通信
    1 网络基础知识
    15 GIL 全局解释器锁 C语言解决 top ps
  • 原文地址:https://www.cnblogs.com/fengxw/p/6084156.html
Copyright © 2011-2022 走看看