349. Intersection of Two Arrays
Given two integer arrays nums1
and nums2
, return an array of their intersection. Each element in the result must be unique and you may return the result in any order.
Example 1:
Example 2:
Solution:
class Solution {
public int[] intersection(int[] nums1, int[] nums2) {
Set<Integer> set = new HashSet<Integer>();
for (int i = 0; i < nums1.length; i++){
set.add(nums1[i]);
}
Set<Integer> resultSet = new HashSet<Integer>();
for (int i = 0; i < nums2.length; i++){
if (set.contains(nums2[i])){
resultSet.add(nums2[i]);
}
}
int[] result = new int[resultSet.size()];
int i = 0;
for (Integer item : resultSet){ // set 的用法要记住
result[i] = item;
i++;
}
return result;
}
}
// TC: O(n)
// SC: O(n)
class Solution {
public int[] intersection(int[] nums1, int[] nums2) {
Set<Integer> set = new HashSet<Integer>();
Set<Integer> set2 = 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])){
set2.add(nums2[j]);
}
}
int[] result = new int[set2.size()];
int k = 0;
for (int ele : set2){
result[k] = ele;
k++;
}
return result;
}
}
// TC: O(n)
// SC: O(n)