多数元素 II

给定一个大小为 n 的整数数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。

  • 输入:nums = [3,2,3]

  • 输出:[3]

  • 输入:nums = [1]

  • 输出:[1]

  • 输入:nums = [1,2]

  • 输出:[1,2]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var majorityElement = function(nums) {
let map = new Map();
let len = nums.length;

for(let i=0; i<len; i++) {
map.set(nums[i], map.has(nums[i]) ? map.get(nums[i]) + 1 : 1)
}

let seperateLine = Math.floor(len / 3)
const res = [];
for(let [key, value] of map.entries()) {
if(value > seperateLine) {
res.push(key)
}
}

return res;
};