349. 两个数组的交集https://leetcode.cn/problems/intersection-of-two-arrays/
1、题目
给定两个数组 nums1
和 nums2
,返回 它们的 交集。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。
示例 1:
输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2]
示例 2:
输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出:[9,4] 解释:[4,9] 也是可通过的
提示:
1 <= nums1.length, nums2.length <= 1000
0 <= nums1[i], nums2[i] <= 1000
2、题解
class Solution {public int[] intersection(int[] nums1, int[] nums2) {// 用于存储 nums1 中的唯一元素Set<Integer> visited = new HashSet<Integer>();// 用于存储交集元素Set<Integer> set = new HashSet<Integer>();// 将 nums1 中的元素添加到 visited 集合中for(int i=0; i<nums1.length; i++) {visited.add(nums1[i]);}// 遍历 nums2,查找与 nums1 中重复的元素for(int i=0; i<nums2.length; i++) {if(visited.contains(nums2[i])) { // 如果 nums2 的元素在 nums1 中存在set.add(nums2[i]); // 将该元素添加到交集集合}}// 将交集元素转化为数组int[] result = new int[set.size()];int count = 0;for(Integer i : set) {result[count++] = i;}return result; // 返回交集数组}
}