Leetcode 数组:414 第三大的数 third-maximum-number

给定一个非空数组,返回此数组中第三大的数。如果不存在,则返回数组中最大的数。要求算法时间复杂度必须是O(n)。

class Solution:
    def thirdMax(self, nums: List[int]) -> int:
        

        nums = list(set(nums))
        MAX = float('-inf')
        SECEND_MAX = float('-inf')
        THIRD_MAX = float('-inf')
        
        for i  in range(0,len(nums)):
          
            if MAX < nums[i] :
                THIRD_MAX = SECEND_MAX
                SECEND_MAX = MAX
                MAX = nums[i]
        
            elif nums[i]>SECEND_MAX  :
                THIRD_MAX = SECEND_MAX
                SECEND_MAX = nums[i]
            
            elif nums[i]>THIRD_MAX:
                nums[i] = THIRD_MAX  
       
                
        if  THIRD_MAX != float('-inf'):
            return THIRD_MAX
        
        return MAX

 

posted @ 2020-04-26 23:50  L1m1t  阅读(134)  评论(0编辑  收藏  举报