给你一个非空数组,返回此数组中 第三大的数 。如果不存在,则返回数组中最大的数。

先去掉特殊情况,然后符合条件的比三次
class Solution:
def thirdMax(self, nums: List[int]) -> int:
# 去除特殊情况
key_num = len(collections.Counter(nums))
if key_num <= 2:
return max(nums)
else:
time = 0
while time <= 1:
max_this_time = max(nums)
# 从列表中去掉最大的数
for i in range(len(nums)):
if nums[i] == max_this_time:
nums[i] = -2 ** 31
time += 1
return max(nums)
