LeetCode 349. Intersection of Two Arrays

LeetCode 349. Intersection of Two Arrays (两个数组的交集)

题目

链接

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

问题描述

给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。

示例

输入:nums1 = [1,2,2,1], nums2 = [2,2]
输出:[2]

提示

1 <= nums1.length, nums2.length <= 1000
0 <= nums1[i], nums2[i] <= 1000

思路

用两个hashset来存储结果,最后把数据转移到数组中即可。

复杂度分析

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

代码

Java

    public int[] intersection(int[] nums1, int[] nums2) {
        if (nums1.length == 0 || nums2.length == 0) {
            return new int[0];
        }
        HashSet<Integer> a = new HashSet<>();
        HashSet<Integer> b = new HashSet<>();
        for (int i : nums1) {
            a.add(i);
        }
        for (int i : nums2) {
            if (a.contains(i)) {
                b.add(i);
            }
        }
        int[] ans = new int[b.size()];
        int index = 0;
        for (int i : b) {
            ans[index++] = i;
        }

        return ans;
    }
posted @ 2022-05-19 08:29  cheng102e  阅读(16)  评论(0编辑  收藏  举报