前几天看到了一道题目,要求以O(n)复杂度下实现数组的去除重复项。

算法不好的自己首先想到的是蛮力法,简单想想后发现时间复杂度是O(n²),完全不符合题目要求。

之后想到了哈希字典的方式,在JS下简单模拟了一下,代码如下:

 1 var a=["A", 2, 3, 1, 4, 7, 2, 2, "s", 1],
 2       b=[],
 3       c=[],
 4       m=0;
 5 for(var i=0; i<a.length; i++){
 6       if(!b[a[i]]){
 7             c[m++]=a[i];
 8             b[a[i]]=1;
 9       }
10 }

简单代码,仅供大家参考,不足之处请指出,谢谢。

转载于:https://www.cnblogs.com/xiao-yao/archive/2012/08/09/2630309.html

o(n)复杂度下实现数组去除重复项相关推荐

  1. php 处理二维数组(去除重复项,排序,转换,去空白等)

    技巧提示: array_keys($array) //返回所有键名array_values($array) //返回所有键值 $result=array_reverse($input); //将数组颠 ...

  2. php二维码数组处理_php处理二维数组(去除重复项,排序,转换,去空白等)

    1. PHP二维数组去重复项函数 PHP数组去除重复项 有个内置函数array_unique (),但是php的 array_unique函数只适用于一维数组,对多维数组并不适用,以下提供一个二维数组 ...

  3. Excel 去除重复项的几种常用技巧

    在工作中使用Excel时,经常会有需要在对原始记录清单进行整理时,剔除其中一些重复项.接下来本文就来讲解下Excel中去除重复项的几种常用技巧. 所谓的重复项,通常是指在Excel中某些记录在各个字段 ...

  4. c++删除数组中重复元素_在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法...

    大家好,我们今日继续讲解VBA数组与字典解决方案第22讲:在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法.如果文本中含有大量的重复值,此时,如果我们要剔除重复值,该怎么办?用VBA的方法 ...

  5. vba数组如何精确筛选_第22讲:利用动态数组去除重复值的方法

    大家好,我们今日继续讲解VBA数组与字典解决方案第22讲:在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法.如果文本中含有大量的重复值,此时,如果我们要剔除重复值,该怎么办?用VBA的方法 ...

  6. go数组去除重复_让我们一起啃算法----删除排序链表中的重复元素

    删除排序链表中的重复元素(Remove-Duplicates-From-Sorted-List) 题干: 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次. 示例 1: 输入: 1-> ...

  7. java 两个数组去重复数据_Java实现数组去除重复数据的方法详解

    本文实例讲述了Java实现数组去除重复数据的方法.分享给大家供大家参考,具体如下: 前一段时间被面试问到:如果一个数组中有重复元素,用什么方法可以去重?一时间会想到用一种方法,但是后来查阅资料后发现, ...

  8. python去除数组缺失值_动态数组的应用,VBA中如何利用动态数组去除重复值的第二讲...

    大家好,我们今日继续讲解VBA代码解决方案的第62讲内容:在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法第二部分.在上一讲中,我们讲了知识点的利用,其一是Filter函数,其二是ReDi ...

  9. php 去除二维数组重复,两种php去除二维数组的重复项方法_PHP

    php去掉二维数组的重复值的方法总结,具体代码如下: 方法一: //二维数组去掉重复值 function array_unique_fb($array2D){ foreach ($array2D as ...

  10. java 导出excel并使用统计函数,java数组怎么求和(EXCEL 怎么用函数公式计数(去除重复项))...

    EXCEL 怎么用函数公式计数(去除重复项) 要好好学习,在用函数计算公式来计算. 如何在EXCLE中定义公式求的不同类别数组中的最大值或最小值? 做透视图就可以,需要时点右键刷新一下,公式也可以,但 ...

最新文章

  1. 白宫计划2019年春季发布新版人工智能研究战略
  2. java web 读取配置文件两种方法
  3. 计算机vb选择题题题库,2013计算机二级VB真考选择题题库(4
  4. 学习响应式BootStrap来写融职教育网站,Bootsrtap第三天nav布局
  5. java jstack 死锁_利用jstack检测死锁DeadLock
  6. 《深度学习Python实践》第18章——持久化加载模型
  7. 采用open***对两台流量卡arm设备进行通讯(公有云)
  8. 大数据技术原理与应用 第三版 林子雨 期末复习(一)大数据概述 第一章 P2
  9. 历史上最伟大的12位程序员
  10. “舒淇半停工原因”上热搜:人生下半场,拼的是健康
  11. 叶俊:没有人会把钱存在有漏洞的账户
  12. 学习分享:RNN(持续更新)
  13. 【超简易】网站ioc图标添加【超详细】
  14. Linux 安装 JDK + Tomcat + Mysql
  15. windows的由来与详细介绍
  16. 台式计算机打字标准手法,怎样才能练好标准的打字方法?电脑键盘打字指法教学...
  17. java-net-php-python-jsp健身俱乐部管理系统演示录像计算机毕业设计程序
  18. LM317的调压电阻的选择
  19. C语言程序设计第五版谭浩强 第七章答案
  20. ORB+GMS、FREAK+GMS、BRISK+GMS、AKAZE+GMS特征点结合使用方法

热门文章

  1. 控制方法只有相应权限才可执行
  2. Css技巧:模块化编码
  3. 为什么这么多的广告呢
  4. 【Git/Github学习笔记】Github私钥的问题
  5. C语言内联函数的作用
  6. 【事件驱动】【数码管识别】 封装成DLL的函数的梳理
  7. 从零基础入门Tensorflow2.0 ----七、33 数据padding,模型构建,训练
  8. SNPP/VIIRS 数据介绍和下载
  9. 接口与interface关键字
  10. GeoServer设置栅格影像的发布样式