题目描述:

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

解析:

1.首先创建两个set,先把num1数组放入一个set,然后遍历nums2,判断第一个set里是否有num[i]的值,如果有则加入第二个set里
2.把第二个set转为数组,最后返回即可

Java:

public int[] intersection(int[] nums1, int[] nums2) {
        HashSet<Integer> set = new HashSet<Integer>();
        HashSet<Integer> result = new HashSet<Integer>();
        for(int num : nums1) {
            set.add(num);
        }
        for(int num :nums2) {
            if(set.contains(num)) {
                result.add(num);
            }
        }
        int[] resultArr = new int[result.size()];
        int i = 0;
        for(int num : result) {
            resultArr[i++] = num;
        }
        return resultArr;
    }

JavaScript:

var intersection = function(nums1, nums2) {
    const result = new Set();
    const set = new Set(nums2);
    for(num of nums1) {
        if(set.has(num)) {
            result.add(num);
        }
    }
    return Array.from(result);
};