Given two arrays, write a function to compute their intersection.
Example 1:
Input: nums1 = [1,2,2,1], nums2 = [2,2] Output: [2]
Example 2:
Input: nums1 = [4,9,5], nums2 = [9,4,9,8,4] Output: [9,4]
Note:
- Each element in the result must be unique.
- The result can be in any order.
解法:
用set解决。
class Solution {
public int[] intersection(int[] nums1, int[] nums2) {
int l1 = nums1.length;
int l2 = nums2.length;
Set<Integer> res = new HashSet<Integer>();
Set<Integer> st = new HashSet<Integer>();
if(l1 == 0 ||l2 == 0)return new int[0];
for(int i=0;i<l1;i++){
st.add(nums1[i]);
}
for(int j=0;j<l2;j++){
if(st.contains(nums2[j])) res.add(nums2[j]);
}
int[] res1 = new int[res.size()];
Iterator<Integer> it = res.iterator();
int x = 0;
while(it.hasNext()){
res1[x++] = it.next();
}
return res1;
}
}