LeetCode 414 第三大的數

2021-10-02 01:18:57 字數 1156 閱讀 8472

題目:

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

(n)。

示例 1

:輸入:[3

,2,1

]輸出:

1解釋: 第三大的數是 1.

示例 2

:輸入:[1

,2]輸出:

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

.示例 3

:輸入:[2

,2,3

,1]輸出:

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

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

原始碼:

class

solution

if(nums.length ==2)

// max1 為第一大的數字

int max1 = integer.min_value;

// max2 為第二大的數字

int max2 = integer.min_value;

// max3 為第三大的數字

int max3 = integer.min_value;

boolean f =

true

;// count很重要,用來記錄陣列中不重複的數字和重複數字只取乙個的總和是否大於3

int count =0;

for(

int num : nums)

if(num > max1)

else

if(num > max2 && num < max1)

else

if(num > max3 && num < max2)

}// 如果 count 大於或等於 3

// 說明陣列中不重複的數字和重複數字只取乙個的總和大於3

// 則返回第三大的值

// 否則返回第一大的值

// 注意:如果陣列出現重複的數字,第二次遍歷到該數字的時候不會有任何更新操作

// 會接著遍歷下乙個數字

return count >=

3? max3 : max1;

}}

LeetCode 414 第三大的數

隨機一題 給定乙個非空陣列,返回此陣列中第三大的數。如果不存在,則返回陣列中最大的數。要求演算法時間複雜度必須是o n 示例 1 輸入 3,2,1 輸出 1 解釋 第三大的數是 1.示例 2 輸入 1,2 輸出 2 解釋 第三大的數不存在,所以返回最大的數 2 示例 3 輸入 2,2,3,1 輸出 ...

LeetCode 414 第三大的數

給定乙個非空陣列,返回此陣列中第三大的數。如果不存在,則返回陣列中最大的數。要求演算法時間複雜度必須是o n 示例 1 輸入 3,2,1 輸出 1 解釋 第三大的數是 1.示例 2 輸入 1,2 輸出 2 解釋 第三大的數不存在,所以返回最大的數 2 示例 3 輸入 2,2,3,1 輸出 1 解釋 ...

LeetCode 414 第三大的數

給定乙個非空陣列,返回此陣列中第三大的數。如果不存在,則返回陣列中最大的數。要求演算法時間複雜度必須是o n 示例 1 輸入 3,2,1 輸出 1 解釋 第三大的數是 1.示例 2 輸入 1,2 輸出 2 解釋 第三大的數不存在,所以返回最大的數 2示例 3 輸入 2,2,3,1 輸出 1 解釋 注...