美文网首页
算法题目(JS)-1.Two Sum

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

作者: Zip_Wang | 来源:发表于2018-01-17 19:26 被阅读16次

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。

相关文章

网友评论

      本文标题:算法题目(JS)-1.Two Sum

      本文链接:https://www.haomeiwen.com/subject/nfcuoxtx.html