class Solution(object):
def thirdMax(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
m1=0
m2=0
m3=0
init_num = 0
for v in nums:
if init_num == 0:
m1=v
init_num=1
elif init_num == 1:
if v != m1:
s1=m1
m1=max(s1,v)
m2=min(s1,v)
init_num = 2
elif init_num == 2:
if v != m1 and v != m2:
s = m1 + m2 + v
s1=m1
s2=m2
m1 = max(s1,s2,v)
m3 = min(s1,s2,v)
m2 = s - m1 - m3
init_num = 3
elif init_num == 3:
if v!= m1 and v != m2 and v != m3:
if v > m1:
m3 = m2
m2 = m1
m1 = v
elif v > m2:
m3 = m2
m2 = v
elif v > m3:
m3 = v
if init_num == 1:
return m1
elif init_num == 2:
return m1
else:
return m3
leetcode 414 Third Maximum Number
Jun 3, 2017