Java哈希表學(xué)習(xí)教程:https://www.runoob.com/java/java-hashmap.html?ivk_sa=1024320u
什么時(shí)候使用哈希法,當(dāng)我們需要查詢(xún)一個(gè)元素是否出現(xiàn)過(guò),或者一個(gè)元素是否在集合里的時(shí)候,就要第一時(shí)間想到哈希法。
242.有效的字母異位詞
今日學(xué)習(xí)的文章鏈接: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
自己看到題目的第一想法:
看完代碼隨想錄之后的想法:使用哈希表實(shí)現(xiàn),難度不大
遇到的困難:需要先判斷兩個(gè)字符串大小是否一樣

349. 兩個(gè)數(shù)組的交集
今日學(xué)習(xí)的文章鏈接: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
自己看到題目的第一想法:用大小為1000的數(shù)組來(lái)實(shí)現(xiàn),遍歷第一個(gè)數(shù)組如果存在就設(shè)為1001,遍歷第二個(gè)++,最后判斷>=1002的
看完代碼隨想錄之后的想法:使用HashSet實(shí)現(xiàn)
遇到的困難:
*本題二刷時(shí)應(yīng)用HashSet實(shí)現(xiàn)

202. 快樂(lè)數(shù)
今日學(xué)習(xí)的文章鏈接:https://programmercarl.com/0202.%E5%BF%AB%E4%B9%90%E6%95%B0.html
自己看到題目的第一想法:
看完代碼隨想錄之后的想法:運(yùn)用HashSet建立一個(gè)已訪問(wèn)過(guò)的數(shù)來(lái)防止無(wú)限循環(huán)
遇到的困難:一開(kāi)始nextNum采用了判斷a是否為零,這樣當(dāng)n為10的倍數(shù)時(shí)會(huì)產(chǎn)生問(wèn)題,應(yīng)該判斷n是否>0
*本題需要二刷

1. 兩數(shù)之和
今日學(xué)習(xí)的文章鏈接:https://programmercarl.com/0001.%E4%B8%A4%E6%95%B0%E4%B9%8B%E5%92%8C.html
自己看到題目的第一想法:
看完代碼隨想錄之后的想法:建一個(gè)HashMap<nums[i], i>來(lái)存放已經(jīng)訪問(wèn)過(guò)的數(shù),判斷target-nums[i]是否在該HashMap中
遇到的困難:不同下標(biāo)可能有相同的數(shù),這題不能用HashSet來(lái)做;要在判斷是否存在后再加入已訪問(wèn)的數(shù),不然可能存在和自身相加等于target的情況

今天學(xué)習(xí)時(shí)長(zhǎng)四小時(shí),對(duì)哈希法掌握了一些(當(dāng)判斷一個(gè)元素是否出現(xiàn)過(guò)要想到哈希法),其中有幾題需要二刷。