Problem: 349. 两个数组的交集
思路
1、暴力
2、哈希Set
解题方法
1、暴力法
2、数组1存入set 遍历数组二中的数值 在set中是否存在 如果存在 存入新的newset中 最后将set转为array 返回
Code1
class Solution {
public int[] intersection(int[] nums1, int[] nums2) {
HashSet<Object> set = new HashSet<>();
for (int i = 0; i < nums1.length; i++) {
for (int j = 0; j < nums2.length; j++) {
if (nums1[i] == nums2[j]) {
set.add(nums1[i]);
}
}
}
//set转array
Integer[] integers = set.toArray(new Integer[set.size()]);
int[] arr = new int[set.size()];
for (int i = 0; i < integers.length; i++) {
arr[i] = integers[i];
}
return arr;
}
}
Code2
class Solution {
public static final HashSet<Object> OBJECTS = new HashSet<>();
public int[] intersection(int[] nums1, int[] nums2) {
if (nums1 == null || nums1.length == 0 || nums2.length == 0 || nums2 == null) {
return new int[0];
}
HashSet<Object> set = new HashSet<>();
HashSet<Object> newSet = new HashSet<>();
for (int i : nums1) {
set.add(i);
}
for (int i : nums2) {
if (set.contains(i)) {
newSet.add(i);
}
}
//set--》array
int[] ints = new int[newSet.size()];
Integer[] integers = newSet.toArray(new Integer[0]);
for (int i = 0; i < integers.length; i++) {
ints[i] = integers[i];
}
return ints;
}
}