数组去重
数组去重简易实现:
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; }