算法题目(JS)-1.Two Sum

LeetCode-1.Two Sum

问题描述:给你一个整形数组,然后给你一个特定的和,取出数组中相加等于特定和的两个数值对应的下标,组成的数组。(这个题目其实有一点问题,就是如果数组中有两对数字相加等于目标和,那么输出可能就有问题了,所以特定的场合是至多只有一组)

例如:[2, 7, 11, 15] 目标和是9,所以方法应该返回    [0, 1]

解法1:

    这可能是大部分人第一时间想到的方法,就是两个for循环遍历,判断相加是否符合,然后输出,代码如下:

解法2:

    用Hash Table来解决,这个方法在时间复杂度上面要比上面的方法来的好,特别是在数据量很大的情况下,代码如下:

接下来,我们来看一下测试,简单的数组我们就不测试了,两个解法使用的时间大致一样。我们创建一个含有0到99999的数组,然后目标和为199997。两个测试的时间如下:

解法1使用的时间,大约使用了12秒左右,我跑过几次,时间大约都在12秒左右。

解法2使用的时间,大约在7ms左右,我也试过几次,最长的时间也就14ms。

从数据上面可以看出,大数据量的时候,HashMap使用的时间要大大的小于解法1。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,265评论 0 4
  • 第三章 类型、值和变量 1、存取字符串、数字或布尔值的属性时创建的临时对象称做包装对象,它只是偶尔用来区分字符串值...
    坤少卡卡阅读 650评论 0 1
  • 周一,去社区开个证明。给开证明的是居委会党支部副书记,50来岁的样子。走进办公室,迎面一张长长的会客木椅,左边放着...
    哥斯拉要学游泳阅读 1,071评论 1 1
  • 好不容易的假期,坐了两天的车终于到家了,和家里人刚刚聚在一起的时候,任课老师来了哥个电话,第一句就说了“同...
    育吉yuji阅读 253评论 1 8
  • 突然意识到自己把自己困得太久了,我们习惯现有的环境,习惯现有的人群,习惯现有的安逸与舒适,却没曾想过以后的日子应...
    鱼尾骨阅读 554评论 0 0