LeetCode 169 多數元素

2021-10-22 14:20:54 字數 580 閱讀 2277

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

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

嘗試設計時間複雜度為 o(n)、空間複雜度為 o(1) 的演算法解決此問題。

輸入

[3,2,3]
輸出:

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

輸出:2

若將數列排序,則數列的第 ⌊n/2⌋ 項一定為該元素

class

solution

};

對於項數為 n(n>2),眾數個數為 m > ⌊n/2⌋ 的數列:

1、從其中去除 2 個不相同的項,剩餘項中眾數不變

2、從其中去除 k 項,且該 k 項的眾數個數 ≤ ⌊k/2⌋,則剩餘項中眾數不變

投票:

若遍歷到數列最後一項,則返回該項

class

solution}}

return can;}}

;

LeetCode 169 多數元素

給定乙個大小為 n 的陣列,找到其中的多數元素。多數元素是指在陣列 現次數大於 n 2 的元素。你可以假設陣列是非空的,並且給定的陣列總是存在多數元素。示例 1 輸入 3,2,3 輸出 3 示例 2 輸入 2,2,1,1,1,2,2 輸出 2 思路一 既然是多數且超過n 2,那麼排序之後,這些數中間...

LeetCode 169 多數元素

題目描述 給定乙個大小為 n 的陣列,找到其中的多數元素。多數元素是指在陣列 現次數大於 n 2 的元素。你可以假設陣列是非空的,並且給定的陣列總是存在多數元素。法 1 直接遍歷 時間複雜度 o n 2 空間複雜度 o 1 public intmajorityelement1 int nums if...

leetcode169 多數元素

用乙個變數和計數器輔助,變數存放當前元素的值a,計數器統計當前元素出現次數n 如果遇到的元素和a不一樣,則n減一,如果n為零,則把a替換成遇到的元素,b設為1 最後的a即為要求的多數元素 class solution count candidate num 1 1 return candidate ...