刷題第四天
202. 快樂數(shù):
一開始沒看到無限循環(huán)四個加粗的大字,一直在疑惑這題目怎么能做出來,后面被朋友提醒才反應(yīng)過來。??
既然是無限循環(huán)那只要遇到相同的數(shù)字,就說明遇到了環(huán),說明可以停下來了。使用一個unordered_set記錄一下數(shù)字就好啦。每次count一下數(shù)字是否在set里。

1. 兩數(shù)之和:
一開始使用的是一個數(shù)組存儲nums里的數(shù)據(jù),因?yàn)榇鸢肝ㄒ唬詳?shù)據(jù)不可能重復(fù),即使重復(fù)也只能說明target是這兩個數(shù)之和,因此使用數(shù)組cnt下標(biāo)作為nums的數(shù)據(jù),對應(yīng)的值為數(shù)據(jù)的下標(biāo),cnt一開始全部初始化為-1,因?yàn)閚ums從0開始的。開開心心提交之后,才發(fā)現(xiàn)nums有負(fù)數(shù)。于是改用map<int,int>,但這里又出現(xiàn)了問題,好像不能統(tǒng)一給map賦初始值-1。于是,我只能在nums前面插入一個數(shù),結(jié)果再全部減一。(我看了題解可以直接count一下,還是對map不熟悉啊~??記住了!)

454. 四數(shù)相加 II:
這題一開始受上題影響,以為要輸出結(jié)果的下標(biāo),還特地去了解了一下turple,結(jié)果了解了一半的時候,回過頭來看了一眼題目,發(fā)現(xiàn)只需要輸出幾種結(jié)果(暈,以后一定好好看題目)。這樣的話事情就好辦了。先算出nums1、2、 3的三數(shù)相加的總和,map<int,int>第一個int存總和,第二個int存總和的次數(shù),最后和4比較。提交結(jié)果發(fā)現(xiàn)超時了。
重新思考了一下,后面發(fā)現(xiàn)可以1、2相加和3、4比較。后面就過了。

383. 贖金信:
使用unordered_map<char,int>存magazine各個字母的個數(shù)。再遍歷ransomNote,如果map中的字母少于ransomNote需要的,就返回false。