代码随想录训练营第六天-哈希专题

60 阅读1分钟

1. 242.有效的字母异位词

题目链接:
leetcode.cn/problems/va…

解题思路:
本题可以借用数组进行解决。
首先创建两个数组,然后分别遍历要比较的字符串a和b。进行记录a和b中字符出现的次数。最后进行比较两个数组是否相等。

2. 349.两个数组的交集

题目链接:
leetcode.cn/problems/in…

解题思路:
本题可以使用哈希表的数据结构。
首先定义一个map。遍历nums1,将nums1中的元素作为map的key,存在map中。然后遍历nums2,并且判断nums2中的元素是否存在于map中,如果存在,将其放入事先准备好的数组中。最后返回数组即可。

3. 202.快乐数

题目链接:
leetcode.cn/problems/ha…

解题思路:
第 1 部分我们按照题目的要求做数位分离,求平方和。
第 2 部分可以使用哈希集合完成。每次生成链中的下一个数字时,我们都会检查它是否已经在哈希集合中。
如果它不在哈希集合中,我们应该添加它。
如果它在哈希集合中,这意味着我们处于一个循环中,因此应该返回 false。

4. 1.两数之和

题目链接: leetcode.cn/problems/tw…

解题思路:
本题同样使用哈希表进行解答。 首先创建一个map,然后遍历nums,检查hashMap中是否存在target-x这个key,如果存在,返回结果,不存在更新hashMap(不存在的数据存进去)。