使用三个变量a、b、c存放前三大的数,遍历数组,为了不储存重复的数,需判断遍历到的数是否位于已存放的大数之间,并更新存放的数。最后判断是否有第三大的数(c是否被修改)并返回。
class Solution:
def thirdMax(self, nums: List[int]) -> int:
a = b = c = -2147483649 # -2**31 - 1
for n in nums:
if n > a:
a, b, c = n, a, b
elif a > n > b:
b, c = n, b
elif b > n > c:
c = n
return c if c != -2147483649 else a