LeetCode第一題-兩數(shù)之和(純粹記憶題目做法的錯誤總結(jié))

最近為了準備春招又開始做LeetCode了趴荸,先上一年前做題時的提交記錄:


一年前的提交記錄

可見當時應(yīng)該是第一次刷題,一開始應(yīng)該是用兩層for循環(huán)做的,能通過送浊,但是時間復(fù)雜度是O(N^2),估計是后來偷看了答案丘跌,發(fā)現(xiàn)比較好的做法是用哈希表袭景,于是記憶著評論著別人的代碼稀里糊涂的就以O(shè)(N)的時間復(fù)雜度通過了。闭树。耸棒。。(估計那個時候還內(nèi)心狂喜报辱,裝逼地在心里說著學(xué)到了學(xué)到了与殃,想著自己又變強了呀。碍现。幅疼。囧)
于是今天分類復(fù)習(xí)哈希表這塊挑了幾道題做的時候又遇到了這一題,于是憑著自己“優(yōu)秀”的記憶力昼接,寫出了如下的代碼:

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        numIndexDict = {}
        for index, num in enumerate(nums):
            numIndexDict[num] = index
        
        for num in nums:
            if target - num in nums and numIndexDict[num] != numIndexDict[target - num]:
                return [numIndexDict[num], numIndexDict[target - num]]
        
        return []

內(nèi)心OS: “這題不是很簡單嘛爽篷,先把數(shù)組所有的元素作為字典的key,下標作為value辩棒,這樣等下面判斷if target - num in nums的時候就可以把對應(yīng)的下標輸出了呀狼忱,嘿嘿嘿,so easy一睁∽昱”

然而,現(xiàn)實是殘酷的者吁,力扣給出的評分結(jié)果是:解答錯誤>桨场!复凳!

力扣評判

看到給出的輸入[3, 3]的時候我就明白了瘤泪,我這種先把數(shù)組遍歷一遍把對應(yīng)的值和下標作為key和value存到字典里其實相當于set()了一下,把不同下標但是值相同的元素去重了(這樣其實會導(dǎo)致target = 6, 數(shù)組中有兩個3的時候育八,其實應(yīng)該返回這兩個元素對應(yīng)的下標对途,但是因為在我建哈希表的時候,這兩個元素已經(jīng)被我在哈希表中“變成一個元素了”髓棋,也就是我寫的這句判斷代碼

if target - num in nums and numIndexDict[num] != numIndexDict[target - num]:
                return [numIndexDict[num], numIndexDict[target - num]]

是進不來的实檀,最終肯定走到return []去了惶洲。。)

那如何避免我的這種情況呢膳犹?(當然大佬們是不會犯我這種錯誤的恬吕。。须床。)铐料。 其實可以從前往后依次遍歷數(shù)組的時候,判斷target - num是否在我們的哈希表中( 剛剛自己寫代碼的時候突然對于符合判斷元素是否在哈希表中糾結(jié)是否能否通過 key in dict的方式來判斷豺旬,查了一下钠惩,網(wǎng)上是這么說的(Python 字典 in 操作符用于判斷鍵是否存在于字典中,如果鍵在字典 dict 里返回 true哈垢,否則返回 false妻柒。)扛拨,所以還是要自己真的去動手寫耘分,去思考啊。绑警。求泰。),如果不在的話计盒,就把(元素渴频,下標)作為(key, value)存到自己建的字典中。如果在的話北启,就可以 return 哈希表中對應(yīng)元素的value了卜朗。 大致可以寫出如下代碼:

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
            indexNumDict = {}
            for index, num in enumerate(nums):
                if target - num in indexNumDict:
                    return index, indexNumDict[target - num]
                indexNumDict[num] = index
            return []

這樣其實可以避免我上面出現(xiàn)的問題。比如還是數(shù)組 = [3, 3]咕村,target = 6的時候场钉,第一次判斷target - 3在不在哈希表中,結(jié)果是不在的懈涛,然后存入哈希表逛万。第二次判斷target - 第二個3的時候查詢哈希表,發(fā)現(xiàn) target - 3 = 3這個key已經(jīng)在哈希表中了批钠,所以果斷 return index, indexNumDict[target - num]宇植。

就這一題其實可以反映我自身的問題,我從初中的時候其實就養(yǎng)成了一個很不好的習(xí)慣埋心,在面臨考試這樣的任務(wù)指郁,或者一味追求數(shù)量的時候,我會嘗試著用大腦去記住所有的解法拷呆,這種方法也許在邏輯簡單闲坎,知識簡單的情況下可以記住90%甚至更高的解題方法,但是這種方式也在扼殺自己養(yǎng)成真正去思考知識背后的邏輯,也就是真正的理解箫柳,到高中之后知識變得龐雜手形,變得更有深度的時候,記憶程度有限的大腦只會變得疲憊悯恍,并且失去思考的真正樂趣库糠。。 所以正如前幾天我問實習(xí)的一個小伙伴說我做題之后就都忘了他給我的建議——“刷題的時候至少要有連續(xù)的投入三小時以上涮毫,有時候一上午做一兩道題都是很正常的瞬欧,要去理解,而不是記憶”罢防。單純的記憶不理解也許短期內(nèi)能記住艘虎,但是理解了之后才是 long-term memory,才能體會到思考的樂趣咒吐,形成正向激勵野建,這才是正道(當然如果都到面試前幾天了,那就背吧恬叹!??????)候生。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市绽昼,隨后出現(xiàn)的幾起案子唯鸭,更是在濱河造成了極大的恐慌,老刑警劉巖硅确,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件目溉,死亡現(xiàn)場離奇詭異,居然都是意外死亡菱农,警方通過查閱死者的電腦和手機缭付,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來大莫,“玉大人蛉腌,你說我怎么就攤上這事≈焕澹” “怎么了烙丛?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵锰什,是天一觀的道長紊搪。 經(jīng)常有香客問我,道長舌界,這世上最難降的妖魔是什么赋元? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任忘蟹,我火速辦了婚禮飒房,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘媚值。我一直安慰自己狠毯,他們只是感情好,可當我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布褥芒。 她就那樣靜靜地躺著嚼松,像睡著了一般。 火紅的嫁衣襯著肌膚如雪锰扶。 梳的紋絲不亂的頭發(fā)上献酗,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天,我揣著相機與錄音坷牛,去河邊找鬼罕偎。 笑死,一個胖子當著我的面吹牛京闰,可吹牛的內(nèi)容都是我干的颜及。 我是一名探鬼主播,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼忙干,長吁一口氣:“原來是場噩夢啊……” “哼器予!你這毒婦竟也來了浪藻?” 一聲冷哼從身側(cè)響起捐迫,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎爱葵,沒想到半個月后施戴,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡萌丈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年赞哗,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辆雾。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡肪笋,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出度迂,到底是詐尸還是另有隱情藤乙,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布惭墓,位于F島的核電站坛梁,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏腊凶。R本人自食惡果不足惜划咐,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一拴念、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧褐缠,春花似錦政鼠、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至器躏,卻和暖如春俐载,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背登失。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工遏佣, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人揽浙。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓状婶,卻偏偏與公主長得像,于是被迫代替她去往敵國和親馅巷。 傳聞我的和親對象是個殘疾皇子膛虫,可洞房花燭夜當晚...
    茶點故事閱讀 45,435評論 2 359