LeetCode 169 多數元素

2021-10-23 20:03:12 字數 1149 閱讀 4056

題目描述

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

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

示例 1:

輸入:[3

,2,3

]輸出:

3

示例 2:

輸入:[2

,2,1

,1,1

,2,2

]輸出:

2

解題思路

這是乙個簡單的題目,那就嘗試一下不同的方式去解答。

最直接的辦法就是將陣列中的元素以及其次數儲存早map中,然後遍歷陣列,找出大於次數大於邊界值的元素。

該方法的時間複雜度為o(n),空間複雜度為o(n)。

我們還可以使用雙指標求解

**實現

/**

* @param nums

* @return

*/var

majorityelement

=function

(nums)

if(nums.length)

)// 遍歷陣列

object.

keys

(map)

.map

((key)

=>})

}return number

};

雙指標:

/**

* @param nums

* @return

*/var

majorityelement

=function

(nums)

else}if

(j === nums.length -1)

}}return number

};

提交結果

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 ...