LeetCode414 第三大的數

2022-05-13 08:03:35 字數 799 閱讀 7210

查詢吧?

1、因為題目要求是on的時間,所以排序肯定是不行的。、

2、所以,重複的數字,都是同乙個位置,所以可以去重。比存在的且不同的數字即可。

3、用乙個大小為3的堆來比嗎?

好像就是topk問題

public

static

int thirdmax(int

nums)

iterator

iterator =set.iterator();

int count = 0;

priorityqueue

queue = new priorityqueue<>();

//把數字都遍歷一次,如果比queue裡最小的元素大,就刪掉queue裡最小的元素,扔進queue

//這樣到最後,queue裡面的元素,肯定都是比這些元素大的,這就是topk了

while

(iterator.hasnext())

else}}

//麻煩一點,這樣語意明確

if(queue.size()>=3)

else

if (queue.size()==2)

else

}

答案裡面,排序的執行時間好快

最快的答案,不可取,乙個個比較,如果k變多了呢?

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