两个数组的交集
给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序
示例 1:
输入:nums1 = [1,2,2,1], nums2 = [2,2]
输出:[2]
示例 2:
输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出:[9,4]
解释:[4,9] 也是可通过的!
题解:
使用循环方式,将元素较少的集合与另一个依次比较,交集加入新集合
使用HashSet可以去重(集合不能有重复元素)
再将集合元素加入新数组return
class Solution {
public int[] intersection(int[] nums1, int[] nums2) {
Set<Integer> set1 = new HashSet<Integer>();
Set<Integer> set2 = new HashSet<Integer>();
for(int num:nums1){
set1.add(num);
}
for(int num:nums2){
set2.add(num);
}
return getsame(set1,set2);
}
public int[] getsame(Set<Integer> set1,Set<Integer> set2){
Set<Integer> set = new HashSet<Integer>();
if(set1.size() > set2.size()){
return getsame(set2,set1);
}
if(set1.size() <= set2.size()){
for(int num:set1){
if(set2.contains(num)){
set.add(num);
}
}
}
int[] answ = new int[set.size()];
int n = 0;
for(int num:set){
answ[n++] = num;
}
return answ;
}
}