求众数

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

说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1)。

function majorityElement(nums) {
    let num= Math.floor(nums.length / 3) + 1,obj = {},arr = []
    for(let i = 0;i < nums.length;i++){
        let item = nums[i]
        if(!obj[item]){
            obj[item] = 1
        }else{
            obj[item]++
        }
        if(obj[item] >= num && arr.indexOf(item) == -1){
            arr.push(item)
        }
    }
    return arr
}

Leecode提交通过

posted @ 2020-07-29 16:26  671_MrSix  阅读(117)  评论(0编辑  收藏  举报