LeetCode 169 多數元素

2021-10-02 16:38:24 字數 969 閱讀 3247

題目描述

給定乙個大小為 n 的陣列,找到其中的多數元素。

多數元素是指在陣列**現次數大於 ⌊ n/2 ⌋ 的元素。

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

法 1:直接遍歷

時間複雜度 o(n*2)

空間複雜度 o(1)

public

intmajorityelement1

(int

nums)

if(count >

(len /2)

)}}return-1

;}

法2:雜湊表

時間複雜度 o(n)

空間複雜度 o(n)

public

intmajorityelement2

(int

nums)

// 新設定乙個元素,和它對應的個數

map.

put(nums[i]

, count +1)

;}return-1

;}

法 4:位運算
public

intmajorityelement3

(int

nums)

}// 判斷當前列的 1的個數

if(bit >

(nums.length /2)

)}return cur;

}

法 4:摩爾投票法

時間複雜度 o(n)

空間複雜度 o(1)

public

intmajorityelement4

(int

nums)

count +=

((num == candidate)?1

:-1)

;}return candidate;

}

LeetCode 169 多數元素

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

leetcode169 多數元素

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

leetcode 169 多數元素

給定乙個大小為 n 的陣列,找到其中的多數元素。多數元素是指在陣列 現次數大於 n 2 的元素。你可以假設陣列是非空的,並且給定的陣列總是存在多數元素。示例 1 輸入 3,2,3 輸出 3 示例 2 輸入 2,2,1,1,1,2,2 輸出 2 第一種方法,先將陣列排序,位於中間的數就是答案。時間複雜...