求众数

给定一个大小为 的数组,找出其中所有出现超过 ⌊ 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提交通过

以自己现在的努力程度,还没有资格和别人拼天赋
原文地址:https://www.cnblogs.com/zhenjianyu/p/13397916.html