题意:给定两个数组,编写一个函数来计算它们的交集。
说明: 输出结果中的每个元素一定是唯一的。 我们可以不考虑输出结果的顺序。

- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
-
- public class SSS {
- public List
intersection(int[] nums1, int[] nums2) { - HashMap
map = new HashMap<>(); - for(int num : nums1){
- map.put(num,map.getOrDefault(num,0)+1);
- }
-
- List
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
result = sss.intersection(nums1, nums2); - System.out.println(result); // [2,2]
- }
-
- }