题目:给定两个数组 nums1 和 nums2 ,返回它们的交集 。输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序 。

👍解题思路:使用set作为哈希表,首先创建两个set,再通过for循环遍历nums1数组把元素存储进set1;再定义for循环,判断nums2的元素是否存在于set1里,如果存在即添加到第二个set:resSet里;最后将结果集合转化为数组并返回。
public int[] intersection(int[] nums1, int[] nums2) {
if (nums1==null||nums1.length==0||nums2==null||nums2.length==0){ //要判断nums1和nums2是否为null
return new int[0]; //若是则返回空数组
}
Set<Integer> set1=new HashSet<>();
Set<Integer> resSet=new HashSet<>();
for (int i : nums1) {
set1.add(i); //把nums1的元素存入set1
}
for (int i : nums2) {
if (set1.contains(i)){ //判断set1是否存在nums2的元素
resSet.add(i); //如果有则把nums2的元素存入resSet
}
}
return resSet.stream().mapToInt(Integer::intValue).toArray(); //转换为数组并返回
}
997

被折叠的 条评论
为什么被折叠?



