zoukankan      html  css  js  c++  java
  • leetcode_414. 第三大的数

    给你一个非空数组,返回此数组中 第三大的数 。如果不存在,则返回数组中最大的数。
    
     
    
    示例 1:
    
    输入:[3, 2, 1]
    输出:1
    解释:第三大的数是 1 。
    示例 2:
    
    输入:[1, 2]
    输出:2
    解释:第三大的数不存在, 所以返回最大的数 2 。
    示例 3:
    
    输入:[2, 2, 3, 1]
    输出:1
    解释:注意,要求返回第三大的数,是指第三大且唯一出现的数。
    存在两个值为2的数,它们都排第二。
    
    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/third-maximum-number
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
    
    from typing import List
    class Solution:
        def thirdMax(self, nums: List[int]) -> int:
            a=b=c=-2**31-1
    
            n=len(nums)
            if n==1:
                return nums[0]
            if n==2:
                return max(nums[0],nums[1])
    
            for x in nums:
                if x>a:
                    if c!=b:c=b
                    if b!=a:b=a
                    a=x
                elif x!=a and x>b:
                    if c!=b:c=b
                    b=x
                elif x!=b and x!=a and x>c:
                    c=x
                
            if c==-2**31-1 :
                return a
     
            return c 
    
  • 相关阅读:
    Ajax学习总结
    从零开始学Docker
    IBM Websphere MQ常用命令及常见错误
    Log4j学习总结
    Eclipse中各图标含义
    类加载机制与反射
    Feign【入门】
    Eureka【故障演练分析】
    Eureka【启用https】
    Eureka【开启http basic权限认证】
  • 原文地址:https://www.cnblogs.com/hqzxwm/p/14395891.html
Copyright © 2011-2022 走看看