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]
解法
python解法最简单,只需要转成set求交集即可
python
class Solution:
def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
res=[]
for i in nums1:
if i not in res and i in nums2:
res.append(i)
return res
java
java的解法是双指针,一个数组一个指针,同时遍历,需要用到hashset(Set set = new HashSet<>() )
class Solution {
public int[] intersection(int[] nums1, int[] nums2) {
Set<Integer> set = new HashSet<>();
Arrays.sort(nums1);
Arrays.sort(nums2);
int i=0,j=0;
while(i<nums1.length&&j<nums2.length){
if(nums1[i]<nums2[j]){
i++;
}
else if(nums2[j]<nums1[i]){
j++;
}
else{
set.add(nums1[i]);
i++;
j++;
}
}
int k=0;
int[] res = new int[set.size()];
for (Integer num : set) {
res[k++] = num;
}
return res;
}
}