给定一个大小为 n 的数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。
说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1)。
function majorityElement(nums) {
let base = Math.floor((nums.length / 3) + 1),obj = {},arr = [];
for(let i = 0;i < nums.length;i++){
let item = nums[i]
if(!(item in obj)){
obj[item] = 1
}else{
obj[item]++
}
}
for(let k in obj){
if(obj[k] >= base){
arr.push(k)
}
}
return arr
}
Leecode提交通过
原文:https://www.cnblogs.com/zhenjianyu/p/13397916.html