题目描述:
标签:排序 哈希表 双指针 二分查找
给定两个数组,编写一个函数来计算它们的交集。
代码:
思路分析:
1、定义一个set1来存第一个数组nums1的去重后的元素;定义一个set2来存第二个数组包含在set1中的元素,这样变得到了交集set2
2、定义int[ ] arr来存放结果,长度为set2.size()。也可以用增强for循环遍历set2
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){
if(set1.contains(num)){
set2.add(num);
}
}
int[] arr = new int[set2.size()];
int index = 0;
for(int val : set2){
arr[index++] = val;
}
return arr;
}
}