代碼隨想錄算法訓(xùn)練營第六天(第五天休息)|哈希表理論基礎(chǔ) 242.有效的字母異位詞 349. 兩個(gè)數(shù)組的交集 202. 快樂數(shù) 1. 兩數(shù)之和

詳細(xì)布置

哈希表理論基礎(chǔ)

建議:大家要了解哈希表的內(nèi)部實(shí)現(xiàn)原理,哈希函數(shù),哈希碰撞,以及常見哈希表的區(qū)別,數(shù)組,set 和map。

什么時(shí)候想到用哈希法,當(dāng)我們遇到了要快速判斷一個(gè)元素是否出現(xiàn)集合里的時(shí)候,就要考慮哈希法。這句話很重要,大家在做哈希表題目都要思考這句話。

文章講解:https://programmercarl.com/%E5%93%88%E5%B8%8C%E8%A1%A8%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html

注意:Unordered_set自帶去重功能

實(shí)話說,哈希表我不是很懂,只知道好像是往對應(yīng)的索引里面填鍵值

242.有效的字母異位詞

建議: 這道題目,大家可以感受到 數(shù)組

用來做哈希表 給我們帶來的遍歷之處。

題目鏈接/文章講解/視頻講解:https://programmercarl.com/0242.%E6%9C%89%E6%95%88%E7%9A%84%E5%AD%97%E6%AF%8D%E5%BC%82%E4%BD%8D%E8%AF%8D.html?

349.兩個(gè)數(shù)組的交集

建議:本題就開始考慮 什么時(shí)候用set 什么時(shí)候用數(shù)組,本題其實(shí)是使用set的好題,但是后來力扣改了題目描述和測試用例,添加了 0 <= nums1[i], nums2[i] <= 1000 條件,所以使用數(shù)組也可以了,不過建議大家忽略這個(gè)條件。嘗試去使用set。

題目鏈接/文章講解/視頻講解:https://programmercarl.com/0349.%E4%B8%A4%E4%B8%AA%E6%95%B0%E7%BB%84%E7%9A%84%E4%BA%A4%E9%9B%86.html

Set方法(有點(diǎn)難,因?yàn)橹皼]有接觸過,所以函數(shù)用法都不知道,因此挺重要,要牢記):

202.快樂數(shù)

建議:這道題目也是set的應(yīng)用,其實(shí)和上一題差不多,就是套在快樂數(shù)一個(gè)殼子

題目鏈接/文章講解:https://programmercarl.com/0202.%E5%BF%AB%E4%B9%90%E6%95%B0.html

注意:無限循環(huán)指sum值會重復(fù)出現(xiàn),這一點(diǎn)很重要,如果想不到,就一直沒有辦法解出來。

1.兩數(shù)之和

建議:本題雖然是 力扣第一題,但是還是挺難的,也是代碼隨想錄中數(shù)組,set之后,使用map解決哈希問題的第一題。

建議大家先看視頻講解,然后嘗試自己寫代碼,在看文章講解,加深印象。

題目鏈接/文章講解/視頻講解:https://programmercarl.com/0001.%E4%B8%A4%E6%95%B0%E4%B9%8B%E5%92%8C.html

要注意理解:

1、為什么要使用哈希法:

?????? 因?yàn)槲覀兪切枰谝粋€(gè)集合里面找元素的,而前面提過,當(dāng)我們遇到了要快速判斷一個(gè)元素是否出現(xiàn)集合里的時(shí)候,就要考慮哈希法,所以理所應(yīng)當(dāng)用哈希法來解題。

2、使用C++語言的話,為什么要使用unordered_map:

?????? 首先,使用map的原因:因?yàn)楸绢}需要存放兩個(gè)元素,所以數(shù)組和set都不行;

?????? 其次,使用unordered_map的原因:因?yàn)榇婧妥x相比于另外兩種map效率都是最高的。

3、在本題中,map是用來做什么的:

它是用來存放我們遍歷過的元素。

4、本題中map里面的key和value分別是用來存的什么:

key存的是元素值,value存的是下標(biāo)。因?yàn)槲覀冏罱K需要返回的值是下表,所以將元素值作為了索引而非value。

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

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

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