349. 两个数组的交集


集合

import java.util.HashSet;

class Solution {
    public int[] intersection(int[] nums1, int[] nums2) {

        /**
         * 用集合set1存储nums1的元素,然后将nums2的元素挨个进行对比
         * 如果都存在就存在set2中
         * 最后将集合的元素添加进一个数组返回
         */
        HashSet set1 = new HashSet<>();
        HashSet set2 = new HashSet<>();

        for (int i = 0; i < nums1.length; i++) {
            set1.add(nums1[i]);
        }

        for (int i = 0; i < nums2.length; i++) {

            if (set1.contains(nums2[i])){
                set2.add(nums2[i]);
            }
        }

        int[] res = new int[set2.size()];
        int j = 0;

        for (int i : set2){
            res[j++] = i;
        }

        return res;
    }
}

/**
 * 时间复杂度 O(n)
 * 空间复杂度 O(n)
 */

https://leetcode-cn.com/problems/intersection-of-two-arrays/