给定一个大小为 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