文档章节

去掉数组中重复的元素

歌颂_大海
 歌颂_大海
发布于 2017/09/04 10:53
字数 237
阅读 2
收藏 0
点赞 0
评论 0
function unique1(arr){
      //i从0开始遍历arr,同时创建空数组result
      for(var i=0,result=[];i<arr.length;i++){
        //j从0开始,遍历result
        for(var j=0;j<result.length;j++){
          //如果result中当前元素等于arr中当前元素
          if(arr[i]==result[j]) break;//退出循环 
        }//(遍历结束)
        //如果j等于result的length
        if(j==result.length)
          //将arr中当前元素,追加到result末尾
          result[result.length]=arr[i];
      }//(遍历结束)
      return result;
    }
function unique2(arr){
 for(var i=0,result=[],hash=[];i<arr.length;i++){
    //如果hash中以arr当前元素作为key的元素是undefined
    if(hash[arr[i]]===undefined){
      //将arr当前元素追加到result结尾
      result[result.length]=arr[i];
      //为hash添加新元素,key为arr当前元素值,value都赋值为true
      hash[arr[i]]=true;
    }
 }
 return result;
}
for(var i=0,arr=[];i<1000000;i++){
      arr[i]=Math.floor(Math.random()*1000);
    }
    console.time("unique1");
    unique1(arr);
    console.timeEnd("unique1");
    console.time("unique2");
    unique2(arr);
    console.timeEnd("unique2");

对两种查找方式进行比较,第二种用时更少

© 著作权归作者所有

共有 人打赏支持
歌颂_大海
粉丝 0
博文 1
码字总数 237
作品 0
驻马店
程序员
第三章 数组相关操作

编写一段代码,将a设置为一个n个随机整数的数组,要求随机数介于0(包含)和n(不包含)之间。 2. 编写一个循环,将整数数组中相邻的元素置换。例如,Array(1,2,3,4,5)经过置换后变为Array(2,1,4...

小萝卜_ ⋅ 2016/06/08 ⋅ 0

用HashSet查找两个int数组中的相同元素

其实用两个循环嵌套就可以实现,但这里只是为了演示HashSet的去重功能。 import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; import java.util.List; impo...

JAVA_NINA ⋅ 2011/01/07 ⋅ 0

ruby的Array总结

ruby的Array总结 2010-12-28 11:25:54| 分类: Ruby/Rails|字号 订阅 Array 作为一个类,其中方法有:(简单的就不想说明了,仅作参考)

BinYang ⋅ 2012/11/01 ⋅ 0

jQuery Utilities

$.each(object,function(name,value){}),用于遍历对象和数组。 $.each( [0,1,2], function(i, n){alert( "Item #" + i + ": " + n );});$.each( { name: "John", lang: "JS" }, function(i......

梵高 ⋅ 2011/08/15 ⋅ 0

for in 和 for,以及getElementsByTagName('*')

由于原生js中,没有能通过class获取元素的方法,OK,来,自己写 正在我沾沾自喜的时候,尼玛,出幺蛾子了 页面结构是这样的 我了个擦,返回了一个8个元素的数组,有木有,好难过,这不是我想...

DennisHill ⋅ 2016/12/27 ⋅ 0

快速排序及其优化

算法简介 是一种分治的排序算法,特点就是快,而且效率高。 基本思路 通过一趟排序将待排元素分隔成独立的两部分,其中一部分元素的关键字均比另一部分的关键字小,然后分别对这两部分元素继...

TinyDolphin ⋅ 2017/11/15 ⋅ 0

敏感词,关键词过滤与数组关联等操作

对于关键词,敏感词,数组的中词汇的的操作有很多,在工作中小编用到了一部分,下面是一些比较常见的情况加以整理 NO1:判断需要的词汇 有时候我们在一些数据对接的时候会强制加些字段判断提...

jack_zuo ⋅ 2016/12/21 ⋅ 0

删除排序数组中的重复元素

题目大意   给定一个排序的数组,将数组中的重复元素去掉,相同的只保留一个,并且返回数组新的元素个数,不要创建一个新的数组来保存结果。在常量时间内解决这个问题 解题思路   从第二...

一贱书生 ⋅ 2016/12/13 ⋅ 0

接触并理解 快速排序【基础+优化+三向切分】

要点 算法思想与实现,优化思路,性能分析,三向切分,空间,优势 前言 快速排序之所以被称作“快速”,是因为快速排序是我们接触到的最快的通用排序算法,至于原因我们会在后面予以解释。鉴...

LWADE ⋅ 2017/12/07 ⋅ 0

三个数的和

原题   Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.   Note:  ......

一贱书生 ⋅ 2016/12/12 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

来自一个优秀Java工程师的简历

写在前面: 鉴于前几天的一份前端简历,虽然带着很多不看好的声音,但却帮助了很多正在求职路上的人,不管评论怎么说,我还是决定要贴出一份后端的简历。 XXX ID:357912485 目前正在找工作 ...

颖伙虫 ⋅ 22分钟前 ⋅ 0

Confluence 6 恢复一个站点有关使用站点导出为备份的说明

推荐使用生产备份策略。我们推荐你针对你的生产环境中使用的 Confluence 参考 Production Backup Strategy 页面中的内容进行备份和恢复(这个需要你备份你的数据库和 home 目录)。XML 导出备...

honeymose ⋅ 今天 ⋅ 0

JavaScript零基础入门——(九)JavaScript的函数

JavaScript零基础入门——(九)JavaScript的函数 欢迎回到我们的JavaScript零基础入门,上一节课我们了解了有关JS中数组的相关知识点,不知道大家有没有自己去敲一敲,消化一下?这一节课,...

JandenMa ⋅ 今天 ⋅ 0

火狐浏览器各版本下载及插件httprequest

各版本下载地址:http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ httprequest插件截至57版本可用

xiaoge2016 ⋅ 今天 ⋅ 0

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 今天 ⋅ 0

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 今天 ⋅ 0

PXE/KickStart 无人值守安装

导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。 常规的办法有什么? 光盘安装系统 ===> 一...

kangvcar ⋅ 昨天 ⋅ 0

使用Puppeteer撸一个爬虫

Puppeteer是什么 puppeteer是谷歌chrome团队官方开发的一个无界面(Headless)chrome工具。Chrome Headless将成为web应用自动化测试的行业标杆。所以我们很有必要来了解一下它。所谓的无头浏...

小草先森 ⋅ 昨天 ⋅ 0

Java Done Right

* 表示难度较大或理论性较强。 ** 表示难度更大或理论性更强。 【Java语言本身】 基础语法,面向对象,顺序编程,并发编程,网络编程,泛型,注解,lambda(Java8),module(Java9),var(...

风华神使 ⋅ 昨天 ⋅ 0

Linux系统日志

linux 系统日志 /var/log/messages /etc/logrotate.conf 日志切割配置文件 https://my.oschina.net/u/2000675/blog/908189 logrotate 使用详解 dmesg 命令 /var/log/dmesg 日志 last命令,调......

Linux学习笔记 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部