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 
原文地址:https://www.cnblogs.com/hqzxwm/p/14395891.html