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

LeetCode-1.Two Sum

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

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

解法1:

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

解法2:

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

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

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

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

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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

友情鏈接更多精彩內(nèi)容