题意:给定两个数组,编写一个函数来计算它们的交集。
说明: 输出结果中的每个元素一定是唯一的。 我们可以不考虑输出结果的顺序。
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class SSS {
public List<Integer> intersection(int[] nums1, int[] nums2) {
HashMap<Integer,Integer> map = new HashMap<>();
for(int num : nums1){
map.put(num,map.getOrDefault(num,0)+1);
}
List<Integer> intersection = new ArrayList<>();
for(int num : nums2){
if(map.containsKey(num) && map.get(num)>0){
intersection.add(num);
map.put(num,map.get(num)-1);
}
}
return intersection;
}
public static void main(String[] args) {
int[] nums1 = {1,2,3,5,2,1};
int[] nums2 = {2,3,5,2,2};
SSS sss = new SSS();
List<Integer> result = sss.intersection(nums1, nums2);
System.out.println(result); // [2,2]
}
}