数组去重

数组去重简易实现:

Array.prototype.uniq = function () {
    var arr = this;
    var len = arr.length;
    var flag = true;
    var res = [];
    for(let i=0;i<len;i++){
        // 数组中有重复值 去重
           if(arr.indexOf(arr[i]) != -1){
               if( i === arr.indexOf(arr[i])){
                     res.push(arr[i]);
               }
           }
        // 数组中没有重复值 直接push
            else if(flag){
               res.push(arr[i]);
               flag = false;
           }
    }
    return res;
}

简易方式二:

Array.prototype.uniq = function(){
    return [... new Set(this)];  
}

牛客网:数组中出现次数超过一半的数字(easy)题:

function MoreThanHalfNum_Solution(numbers)
{
    var len = numbers.length;
    var middle = Math.floor(len/2);
    const map = new Map();
    for(let item of numbers){
        if(map.has(item)){
            const count = map.get(item)+1;
            if(count>middle){
                 return item;
            }else{
                map.set(item,count);
            }
        }else{
         if(1>middle) return item;
            map.set(item,1);
        }
    }
    return 0;
}

 

posted @ 2021-04-12 20:24  TangTaue  阅读(29)  评论(0编辑  收藏  举报