leetcode——兩數(shù)之和

問題

給定一個(gè)整數(shù)數(shù)組 nums 和一個(gè)目標(biāo)值 target,請你在該數(shù)組中找出和為目標(biāo)值的那 兩個(gè) 整數(shù)症见,并返回他們的數(shù)組下標(biāo)堪置。
你可以假設(shè)每種輸入只會對應(yīng)一個(gè)答案。但是盏筐,你不能重復(fù)利用這個(gè)數(shù)組中同樣的元素围俘。

示例:

給定 nums = [2, 7, 11, 15], target = 9

因?yàn)?nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

思路過程

第一次接觸LeetCode,感覺這題真的是非常簡單琢融。兩次遍歷這個(gè)數(shù)組,求和就可以解決這個(gè)問題了簿寂。

class Solution(object):
    def twoSum(self, nums, target):
        for i, x in enumerate(nums):
            for j, y in enumerate(nums):
                if i == j:
                    pass
                else:
                    if x+y == target:
                        return i, j

提交后發(fā)現(xiàn)漾抬,解答超時(shí)了,這時(shí)候常遂,才開始真正的去思考纳令,應(yīng)該如何提升效率。

上面的代碼很明顯,每次都額外判斷了i==j平绩,把這個(gè)判定稍微修改一下圈匆。

class Solution(object):
    def twoSum(self, nums, target):
        for i, x in enumerate(nums):
            for j, y in enumerate(nums):
                if x+y == target:
                    if i != j:
                        return i, j

這樣簡單修改了一下,發(fā)現(xiàn)提交通過了捏雌,解題時(shí)間花了4000+ms跃赚,似乎還有更大的提升空間。

遍歷hash表的效率是比遍歷數(shù)組的效率高的性湿,因此我們可以把第二次遍歷數(shù)組改為hash表纬傲。

class Solution(object):
    def twoSum(self, nums, target):
        dicts = {}
        for i, x in enumerate(nums):
            dicts[x] = i
        for i, x in enumerate(nums):
            if (target-x) in dicts:
                if i != dicts[(target-x)]:
                    return i, dicts[target-x]

以上,代碼結(jié)構(gòu)和思路沒有變化肤频,只是把數(shù)組替換成hash表叹括,但是解題時(shí)間從4000+ms縮短為58ms

結(jié)語

第一次接觸LeetCode,突然發(fā)現(xiàn)這些題目做完之后宵荒,可以優(yōu)化我們平時(shí)寫代碼的習(xí)慣汁雷。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市报咳,隨后出現(xiàn)的幾起案子侠讯,更是在濱河造成了極大的恐慌,老刑警劉巖少孝,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件继低,死亡現(xiàn)場離奇詭異,居然都是意外死亡稍走,警方通過查閱死者的電腦和手機(jī)袁翁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來婿脸,“玉大人粱胜,你說我怎么就攤上這事『鳎” “怎么了焙压?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長抑钟。 經(jīng)常有香客問我涯曲,道長,這世上最難降的妖魔是什么在塔? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任幻件,我火速辦了婚禮,結(jié)果婚禮上蛔溃,老公的妹妹穿的比我還像新娘绰沥。我一直安慰自己篱蝇,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布徽曲。 她就那樣靜靜地躺著零截,像睡著了一般。 火紅的嫁衣襯著肌膚如雪秃臣。 梳的紋絲不亂的頭發(fā)上涧衙,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天,我揣著相機(jī)與錄音甜刻,去河邊找鬼绍撞。 笑死,一個(gè)胖子當(dāng)著我的面吹牛得院,可吹牛的內(nèi)容都是我干的傻铣。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼祥绞,長吁一口氣:“原來是場噩夢啊……” “哼非洲!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蜕径,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤两踏,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后兜喻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體梦染,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年朴皆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了帕识。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,664評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡遂铡,死狀恐怖肮疗,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情扒接,我是刑警寧澤伪货,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站钾怔,受9級特大地震影響碱呼,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜宗侦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一巍举、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧凝垛,春花似錦懊悯、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至剑肯,卻和暖如春捧毛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背让网。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工呀忧, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人溃睹。 一個(gè)月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓而账,卻偏偏與公主長得像,于是被迫代替她去往敵國和親因篇。 傳聞我的和親對象是個(gè)殘疾皇子泞辐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評論 2 359

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