414 第三大的數

2021-09-25 09:25:19 字數 955 閱讀 6181

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

示例 1:

輸入: [3, 2, 1]

輸出: 1

解釋: 第三大的數是 1.

示例 2:

輸入: [1, 2]

輸出: 2

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

示例 3:

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

輸出: 1

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

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

class

solution

else

continue;}

else

if(nums[i]

> nums[first]

)else

if(nums[i]

> nums[second]

&& nums[i]

!= nums[first]

)else

if(nums[i]

!= nums[second]

&& nums[i]

!= nums[first]

&&(third ==-1

|| nums[i]

> nums[third]))

third = i;

else

continue;}

if(third !=-1

)return nums[third]

;else

return nums[first];}

};

用set容器

排序並去重然後可以直接得到答案

414 第三大的數

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

414 第三大的數

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

414 第三大的數

難度 簡單 題目描述 本來這道題不難,但是測試用例好坑,面向測試用例程式設計了好久 解題思路 類似於大根堆的思想,維護乙個長度為3的陣列,陣列裡元素按照從大到小的順序排序。初始是int型最小值,每新增乙個元素,維護陣列裡的元素大小順序。要注意的細節 巨坑 有 重複的元素不能計算,如果不足三個值要返回...