169 多數元素

2021-10-21 02:40:35 字數 773 閱讀 8437

題目描述

給定乙個大小為 n 的陣列,找到其中的多數元素。多數元素是指在陣列**現次數大於⌊ n/2 ⌋的元素。

你可以假設陣列是非空的,並且給定的陣列總是存在多數元素。

示例 1:

輸入:[3,2,3]

輸出:3

示例 2:

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

輸出:2

高階:

題解:下面介紹乙個通用的查詢出現次數大於n/k元素的方法。

一次刪除k個不同的數,不停的刪除,直到剩下元素的種類不足k就停止,如果乙個數在陣列**現的次數大於n/k,那麼這個數一定會被剩下來。

時間複雜度:o(n

)o(n)

o(n)

額外空間複雜度:o(1

)o(1)

o(1)

class

solution

else

if( it == cand )

++times;

else

--times;

}return cand;}}

;/*記憶體:19.2mb,擊敗:24.20%

*/

169 多數元素

解題思路 1.將陣列從小到大排序 2.第nums.length 2處的元素就是我們要求的元素,直接返回nums nums.length 2 即可 實現 class solution 解題思路 1.變數val,初始值為nums 0 記錄當前的值,計數器cnt,記錄當前元素累計出現的情況,初始值為1 2...

169 多數元素

給定乙個大小為 n 的陣列,找到其中的多數元素。多數元素是指在陣列 現次數大於 n 2 的元素。你可以假設陣列是非空的,並且給定的陣列總是存在多數元素。示例 1 輸入 3,2,3 輸出 3 示例 2 輸入 2,2,1,1,1,2,2 輸出 2 分析 解法一 我們可以先排序,然後輸出在陣列 現次數大於...

169 多數元素

題目描述 給定乙個大小為 n 的陣列,找到其中的多數元素。多數元素是指在陣列 現次數大於 n 2 的元素。你可以假設陣列是非空的,並且給定的陣列總是存在多數元素。示例 1 輸入 3,2,3 輸出 3 示例 2 輸入 2,2,1,1,1,2,2 輸出 2 方法1 直接使用unordered map進行...