LeetCode 414題 第三大的數

2021-09-29 18:49:04 字數 982 閱讀 7780

示例一:

輸入: [1, 2]

輸出: 2

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

示例二:

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

輸出: 1

解釋: 注意,要求返回第三大的數,是指第三大且唯一出現的數。存在兩個值為2的數,它們都排第二。

注意點:最開始定義two和three時,不能寫成 int two = integer.min_value;

因為 integer.min_value 的值為 -2147483648 ,同樣可能是這個陣列中的數。

所以要選擇取值範圍大於 integer 的 long 的最小值。也就是 long two = long.min_value;

思路:用三個變數來存放第一大,第二大,第三大的元素的變數,分別為one, two, three;

遍歷陣列,若該元素比 one 大則將它們三個都往後移動乙個格,並將此時的元素賦值給 one;若比 two 大(比one小)則 two 和 three 往後移動一格;若比three大(比one和two小)則賦值給 three。

最後得到第三大的元素,若沒有則返回第一大的元素。

public

class

lc414

int one = nums[0]

;long two = long.min_value;

long three = long.min_value;

for(

int n : nums)

if(n > one)

else

if(n > two)

else

if(n > three)

}return three == long.min_value ? one :

(int

) three;

// 沒有第三大的元素,就返回最大值

}}

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 解釋 注...