給定一個非空陣列,回傳此陣列中第三大的數,如果不存在,則回傳陣列中最大的數,要求演算法時間復雜度必須是O(n),
示例 1:
輸入: [3, 2, 1]
輸出: 1
解釋: 第三大的數是 1.
示例 2:
輸入: [1, 2]
輸出: 2
解釋: 第三大的數不存在, 所以回傳最大的數 2 .
class Solution:
def thirdMax(self, nums: List[int]) -> int:
firstMax = secondMax = thirdMax = float('-inf')
for num in nums:
if num > firstMax:
firstMax, secondMax, thirdMax = num, firstMax, secondMax
elif num > secondMax and num < firstMax:
secondMax, thirdMax = num, secondMax
elif num > thirdMax and num < secondMax:
thirdMax = num
if thirdMax > float('-inf'):
return thirdMax
else:
return firstMax
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/106354.html
標籤:其他
上一篇:第一篇博客
