代码随想录--哈希--两个数组的交集

题意:给定两个数组,编写一个函数来计算它们的交集。

说明: 输出结果中的每个元素一定是唯一的。 我们可以不考虑输出结果的顺序。

代码随想录--哈希--两个数组的交集_第1张图片

 

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]
    }

}

你可能感兴趣的:(代码随想录,哈希算法,算法,数据结构)