349. [哈希表]两个数组的交集
349. 两个数组的交集
方法一:哈希表
将给定的两个数组内元素转换用哈希表存储,再利用哈希表特性,利用contains判断元素是否存在相交即可。
// 执行耗时:3 ms,击败了95.82% 的Java用户
// 内存消耗:38.3 MB,击败了97.86% 的Java用户
class Solution {
public int[] intersection(int[] nums1, int[] nums2) {
HashSet<Integer> set1 = new HashSet<>();
HashSet<Integer> set2 = new HashSet<>();
for (int n1 : nums1) {
set1.add(n1);
}
for (int n2 : nums2) {
set2.add(n2);
}
return getIntersection(set1, set2);
}
public int[] getIntersection(HashSet<Integer> set1, HashSet<Integer> set2){
if(set1.size() > set2.size()){
return getIntersection(set2, set1);
}
HashSet<Integer> intersectionSet = new HashSet<>();
for (int i : set1){
if (set2.contains(i)){
intersectionSet.add(i);
}
}
int[] res = new int[intersectionSet.size()];
int index = 0;
for(int num : intersectionSet){
res[index++] = num;
}
return res;
}
}

浙公网安备 33010602011771号