414 第三大的數

2021-08-20 18:27:46 字數 514 閱讀 9497

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

示例 1:

輸入: [3, 2, 1]

輸出: 1

解釋: 第三大的數是 1.

示例 2:

輸入: [1, 2]

輸出: 2

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

示例 3:

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

輸出: 1

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

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

返回第三大且又是唯一出現的數,這裡涉及到了排序和去重,所以想到用set來做,因為set是自動去重並公升序的容器,但有一點,訪問set集合裡的元素只能通過迭代器的形式進行訪問,而不能通過下標。

class solution 

}if(res.size()==3)else

}};

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型最小值,每新增乙個元素,維護陣列裡的元素大小順序。要注意的細節 巨坑 有 重複的元素不能計算,如果不足三個值要返回...