题目:
给定两个数组,编写一个函数来计算它们的交集。
解析:
采用set这种哈希结构。因为set中的元素不能重复。
定义两个set。
先遍历一边nums1,存入定义的其中一个set1.
再遍历nums2,与set1对比,如果set1存在遍历的元素,则把该元素加入到set2.
再将set2转化为数组即可。
代码:
class Solution {
public int[] intersection(int[] nums1, int[] nums2) {
HashSet<Integer> temp=new HashSet<Integer>();
HashSet<Integer> set=new HashSet<Integer>();
for(int i=0;i<nums1.length;i++){
set.add(nums1[i]);
}
for(int j=0;j<nums2.length;j++){
if(set.contains(nums2[j])){
temp.add(nums2[j]);
}
}
int[] result=new int[temp.size()];
int index = 0;
//将结果几何转为数组
for (int i : temp) {
result[index++] = i;
}
return result;
}
}