● 242.有效的字母异位词
● 349. 两个数组的交集
● 202. 快乐数
● 1. 两数之和
什么时候想到用哈希法,当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。(做题前可默念三遍
242.有效的字母异位词
字母在算法题里遇到一定要想到ascii码,s.charAt(i)-'a’就把字母和数字连接起来了,将每个字母放到哈希表里,加加减减,最终结果有不为0的值即证明不是有效的字母异位词
349. 两个数组的交集
这个题和下一个题都可以用set来写,因为set的一个特性就是可以去重,一旦有重,那么就出现题解要找的答案了,了解一个数据结构要从正反两方面来应用。
if(nums1==null||nums1.length==0||nums2==null||nums2.length==0){
return new int[0];
}
Set<Integer> set1= new HashSet<>();
Set<Integer> resSet=new HashSet<>();
for(int i:nums1){
set1.add(i);
}
for(int i:nums2){
if(set1.contains(i)){
resSet.add(i);
}
}
int[] arr=new int[resSet.size()];
int j=0;
for(int i:resSet){
arr[j++]=i;
}
return arr;
快乐数
有意思的一道题,抓住题目中的‘无限循环’,就立刻可以意识到要用哈希表。
两数之和
和快乐数差不多,壳子都一样