javascript数组查重
来源:互联网 发布:熊猫智能采集软件 编辑:程序博客网 时间:2024/05/01 18:00
题目描述
找出数组 arr 中重复出现过的元素
示例1
输入: [1, 2, 4, 4, 3, 3, 1, 5, 3];
输出: [1, 3, 4];
方法一:先排序后查重:
function duplicates(arr) { var newArr = arr.sort(); var result = []; for (var i = 0; i < newArr.length; i++){ if (newArr[i] == newArr[i+1] && newArr[i]!= newArr[i-1]){ result.push(newArr[i]); } } return result;}var a = [1,1,2,3,5,3];var b = duplicates(a);console.log(b);// 1,3
对象引索法:
链接:https://www.nowcoder.com/questionTerminal/871a468deecf453589ea261835d6b78b来源:牛客网/* 时间复杂度为O(n)算法。思路:遍历数组,将数组的元素和数组出现的次数分别作为对象属性和值。遍历对象,取出次数大于1的即可。 */function duplicates(arr) { var obj = {}; var repeatList = []; //遍历数组,将数组的值作为obj的索引,出现次数为值 arr.forEach(function(item){ if(obj[item]){ obj[item] +=1; }else{ obj[item] = 1; } }); //获取对象自身属性 var propertyNames = Object.getOwnPropertyNames(obj); //遍历对象,将重复出现的元素取出 propertyNames.forEach(function(item){ if(obj[item] > 1){ repeatList.push(parseInt(item)); } }); return repeatList; }
hash表的算法:
function duplicates(arr) { var hash = {},ret ={}; for (var i =0; i < arr.length; i++) { hash[arr[i]] ? ret[arr[i]] = 1 : hash[arr[i]] = 1 } return Object.keys(ret)}
阅读全文
0 0
- Javascript 数组查重
- javascript数组查重
- Javascript中数组查重的方法总结大全
- 数组查重
- 数组查重(C++)
- js数组查重
- 一维数组查重
- javascript数组去重
- javascript 数组去重
- javascript 数组去重
- 数组去重javascript
- javascript数组去重
- JavaScript数组去重
- JavaScript数组去重
- javascript数组去重
- JavaScript 数组去重
- javascript数组去重
- JavaScript 数组去重
- LINUX定时执行SHELL脚本实现DB2数据库操作,crontab无法正常识别执行
- 110. Balanced Binary Tree
- JZOJ5390. 【NOIP2017提高A组模拟9.26】逗气
- linux 下常用命令
- RBAC权限管理
- javascript数组查重
- 固定表格布局
- Ubuntu安装Hadoop
- Uncaught ReferenceError: $ is not defined
- 测试下项目,帮大佬转发下
- Spring配置定时任务的三种方式
- BM SGBM 设置参数解释
- 09.28周四
- 使用IDEA创建一个Spring Boot Maven项目