代码随想录算法训练营第六天| 242.有效的字母异位词 ,349. 两个数组的交集 ,202. 快乐数 ,1. 两数之和

Java哈希表学习教程:https://www.runoob.com/java/java-hashmap.html?ivk_sa=1024320u

什么时候使用哈希法,当我们需要查询一个元素是否出现过,或者一个元素是否在集合里的时候,就要第一时间想到哈希法。

242.有效的字母异位词

今日学习的文章链接: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. 两个数组的交集

今日学习的文章链接: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的数组来实现,遍历第一个数组如果存在就设为1001,遍历第二个++,最后判断>=1002的

看完代码随想录之后的想法:使用HashSet实现

遇到的困难:

*本题二刷时应用HashSet实现

202. 快乐数

今日学习的文章链接:https://programmercarl.com/0202.%E5%BF%AB%E4%B9%90%E6%95%B0.html

自己看到题目的第一想法:

看完代码随想录之后的想法:运用HashSet建立一个已访问过的数来防止无限循环

遇到的困难:一开始nextNum采用了判断a是否为零,这样当n为10的倍数时会产生问题,应该判断n是否>0

*本题需要二刷

1. 两数之和

今日学习的文章链接:https://programmercarl.com/0001.%E4%B8%A4%E6%95%B0%E4%B9%8B%E5%92%8C.html

自己看到题目的第一想法:

看完代码随想录之后的想法:建一个HashMap来存放已经访问过的数,判断target-nums[i]是否在该HashMap中

遇到的困难:不同下标可能有相同的数,这题不能用HashSet来做;要在判断是否存在后再加入已访问的数,不然可能存在和自身相加等于target的情况

今天学习时长四小时,对哈希法掌握了一些(当判断一个元素是否出现过要想到哈希法),其中有几题需要二刷。

你可能感兴趣的:(代码随想录算法训练营第六天| 242.有效的字母异位词 ,349. 两个数组的交集 ,202. 快乐数 ,1. 两数之和)