169 多數元素

2021-10-08 10:15:12 字數 701 閱讀 5049

題目描述:

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

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

示例 1:

輸入: [3,2,3]

輸出: 3

示例 2:

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

輸出: 2

方法1:直接使用unordered_map進行對映

主要思路:

(1)直接將陣列中的元素對映到map中,統計數量,當某個元素的數量大於一半時,直接返回該值;

class

solution

return0;

}};

方法2:

主要思路:

(1)有點像消消樂,使用兩個變數,乙個儲存要比較的元素,乙個儲存當前剩餘的可以比較消除的次數,在遍歷的過程中,遇到相同的數字則將次數加一,遇到不同的數字則減一,若是遇到零,則更新新的當前元素,重新計數比較;

class

solution

else

}return cur_elem;}}

;

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 多數元素

摩爾投票法思路 候選人 cand num 初始化為nums 0 票數count初始化為1。當遇到與cand num相同的數,則票數count count 1,否則票數count count 1。當票數count為0時,更換候選人,並將票數count重置為1。遍歷完陣列後,cand num即為最終答案...