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

LeetCode-1.Two Sum

問題描述:給你一個(gè)整形數(shù)組,然后給你一個(gè)特定的和,取出數(shù)組中相加等于特定和的兩個(gè)數(shù)值對應(yīng)的下標(biāo),組成的數(shù)組。(這個(gè)題目其實(shí)有一點(diǎn)問題,就是如果數(shù)組中有兩對數(shù)字相加等于目標(biāo)和,那么輸出可能就有問題了,所以特定的場合是至多只有一組)

例如:[2, 7, 11, 15] 目標(biāo)和是9,所以方法應(yīng)該返回????[0, 1]

解法1:

? ? 這可能是大部分人第一時(shí)間想到的方法,就是兩個(gè)for循環(huán)遍歷,判斷相加是否符合,然后輸出,代碼如下:

解法2:

? ? 用Hash Table來解決,這個(gè)方法在時(shí)間復(fù)雜度上面要比上面的方法來的好,特別是在數(shù)據(jù)量很大的情況下,代碼如下:

接下來,我們來看一下測試,簡單的數(shù)組我們就不測試了,兩個(gè)解法使用的時(shí)間大致一樣。我們創(chuàng)建一個(gè)含有0到99999的數(shù)組,然后目標(biāo)和為199997。兩個(gè)測試的時(shí)間如下:

解法1使用的時(shí)間,大約使用了12秒左右,我跑過幾次,時(shí)間大約都在12秒左右。

解法2使用的時(shí)間,大約在7ms左右,我也試過幾次,最長的時(shí)間也就14ms。

從數(shù)據(jù)上面可以看出,大數(shù)據(jù)量的時(shí)候,HashMap使用的時(shí)間要大大的小于解法1。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,268評論 0 4
  • 第三章 類型、值和變量 1、存取字符串、數(shù)字或布爾值的屬性時(shí)創(chuàng)建的臨時(shí)對象稱做包裝對象,它只是偶爾用來區(qū)分字符串值...
    坤少卡卡閱讀 655評論 0 1
  • 周一,去社區(qū)開個(gè)證明。給開證明的是居委會(huì)黨支部副書記,50來歲的樣子。走進(jìn)辦公室,迎面一張長長的會(huì)客木椅,左邊放著...
    哥斯拉要學(xué)游泳閱讀 1,071評論 1 1
  • 好不容易的假期,坐了兩天的車終于到家了,和家里人剛剛聚在一起的時(shí)候,任課老師來了哥個(gè)電話,第一句就說了“同...
    育吉yuji閱讀 253評論 1 8
  • 突然意識到自己把自己困得太久了,我們習(xí)慣現(xiàn)有的環(huán)境,習(xí)慣現(xiàn)有的人群,習(xí)慣現(xiàn)有的安逸與舒適,卻沒曾想過以后的日子應(yīng)...
    魚尾骨閱讀 555評論 0 0