LeetCode第349题(编写一个函数来计算它们的交集)
349 给定两个数组,编写一个函数来计算它们的交集。
示例 1:
输入: nums1 = [1,2,2,1], nums2 = [2,2]
输出: [2]
public static int[] intersection(int[] nums1, int[] nums2) {
if(nums1.length == 0){
return nums1;
}
if (nums2.length == 0){
return nums2;
}
//利用Set不可以有重复的元素特性
Set<Integer> set = new HashSet<>();
Set<Integer> list = new HashSet<>();
//先将其中一个数组添加至集合中
for (int i : nums1) {
set.add(i);
}
//遍历第二个数组
for (int i : nums2) {
if (set.contains(i)){
list.add(i);
}
}
int[] temp = new int[list.size()];
int i = 0;
for (Integer integer : list) {
temp[i++] = integer;
}
return temp;
}
public static void main(String[] args) {
int[] nums1 ={4,7,9,7,6,7};
int[] nums2 ={5,0,0,6,1,6,2,2,4};
int[] a =intersection(nums1,nums2);
for (int i : a) {
System.out.print(i+" ");
}
}
方法验证通过,用时7ms,方法比较笨拙,仅做记录。