leetcode:Third Maximum Number

Third Maximum Number

在非空整数数组中找到倒数第三大的数;如果长度小于三,返回最大的数;第三个最大不同数字。

def thirdMax(nums):
    v = [float('-inf'), float('-inf'), float('-inf')]
    for num in nums:
        if num not in v:
            if num > v[0]: v = [num, v[0], v[1]]
            elif num > v[1]: v = [v[0], num, v[1]]
            elif num > v[2]: v = [v[0],v[1], num]
    return max(nums) if float('-inf') in v else v[2]
nums = [3,4,7,2,5,8,8]
print(thirdMax(nums))
def thirdMax(nums):
    nums = set(nums)
    if len(nums) < 3:
        return max(nums)
    nums.remove(max(nums))
    nums.remove(max(nums))
    return max(nums)
A = [3,4,7,2,5,8,8]
print(thirdMax(A))

总结:

python中表示正负无穷:

float('inf'), float('-inf')

代码中不考虑重复的时候可用set()函数创建一个无序不重复元素集。


猜你喜欢

转载自blog.csdn.net/weixin_38758969/article/details/80315811