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

猜你喜欢

转载自www.cnblogs.com/sometingintheway/p/12783614.html