python leetcode 414 第三大的數

2021-09-11 19:39:51 字數 988 閱讀 4024

**題號: **414

**題目: **第三大的數

**難度: **簡單

**內容: **給定乙個非空陣列,返回此陣列中第三大的數。如果不存在,則返回陣列中最大的數。要求演算法時間複雜度必須是o(n)。

示例 1:

輸入: [3, 2, 1]

輸出: 1

解釋: 第三大的數是 1.

示例 2:

輸入: [1, 2]

輸出: 2

解釋: 第三大的數不存在, 所以返回最大的數 2 .

示例 3:

輸入: [2, 2, 3, 1]

輸出: 1

解釋: 注意,要求返回第三大的數,是指第三大且唯一出現的數。

存在兩個值為2的數,它們都排第二。

**如下:
def thirdmax(list_num):

if len(list_num) <= 1:

return list_num

if len(list_num) == 2:

return max(list_num)

if len(list_num) > 2:

result = set(list_num)

result = list(result)

if len(result) == 1:

return result

if len(result) == 2:

return max(result)

else:

result.sort(reverse=true)

return result[2]

分析:

第乙個 if 是返回但輸入為乙個數的時候;

第二個 if 是返回輸入兩個數的時候,返回最大的乙個;

第三個 if 對輸入是三個以上的數進行判斷,先去掉重複的值,然後看剩下多少個,最後輸出最大值

python leetcode 最大回文數

直接暴力求解時間超出,選取manacher演算法 class solution def longestpalindrome self,s t join s 前後插入 是為了防止越界,不需要進行邊界判斷 n len t p 0 n 每一處的回文半徑 c r 0 r為當前訪問到的最右邊的值,c為此時對稱...

python LeetCode 奇偶鍊錶

給定乙個單鏈表,把所有的奇數節點和偶數節點分別排在一起。請注意,這裡的奇數節點和偶數節點指的是節點編號的奇偶性,而不是節點的值的奇偶性。請嘗試使用原地演算法完成。你的演算法的空間複雜度應為 o 1 時間複雜度應為 o nodes nodes 為節點總數。示例 1 輸入 1 2 3 4 5 null ...

python LeetCode 兩數之和

給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 ...