给定两个数组 nums1
和 nums2
,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。
根据实例我们可以有如下思路
【第一步】对数组num1和num2进行去重,如何快速去重,利用Java中的set集合可以进行去重
【第二步】得到其交集(两个数组中公有的内容)
【第三步】最终返回交集数组。
package hash;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
public class Intersection {
public static void main(String[] args) {
int[] nums1 = {1,2,2,1};
int[] nums2 = {2,2};
int[] intersection = intersection(nums1, nums2);
System.out.println(Arrays.toString(intersection));
}
public static int[] intersection(int[] nums1, int[] nums2) {
Set<Integer> n1 = new HashSet<>();
Set<Integer> result = new HashSet<>();
// 第一步进行去重
for (int i : nums1) {
n1.add(i);
}
// 第二步获取交集
for (int i : nums2) {
if (n1.contains(i)) {
result.add(i);
}
}
// 第三步返回交集数组
return result.stream().mapToInt(x -> x).toArray();
}
}