2215.找出两数组的不同

简介: 2215.找出两数组的不同

题目:给两个下标从0开始的整数数组nums1和nums2,返回一个长度为2的列表answer,其中:

answer[0]是nums1中所有不存在于nums2中的不同整数组成的列表。

answer[1]是nums2中所有不存在于nums1中的不同整数组成的列表。

解题思路:

为了较快地判断一个数组的某个元素是否在另一个数组中存在,我们可以用哈希集合来存储数组的元素,并进行判断。具体而言,我们用哈希集合 set1

与 set2 存储数组 nums1 与 nums2 中所有不同的元素。

我们用长度为 2 的嵌套列表 res 来保存两数组中不存在于另一数组中的元素。我们首先遍历哈希集合 set1 的每个元素,判断其是否位于 set2 中,如果不在,则我们将它加入 res[0]\textit{res}[0]res[0] 中;随后我们同样地遍历哈希集合 set2 的每个元素,判断其是否位于 set1 中,如果不在,则加入 res[1] 中。这样,我们就得到了两数组中各自的不同元素。与此同时,由于哈希集合 set1 与 set2 中不存在重复元素,因此 res[0] 与 res[1] 也一定不存在重复元素。最终我们返回 res 作为答案即可。

class Solution {
    public List<List<Integer>> findDifference(int[] nums1, int[] nums2) {
        HashSet<Integer> set1 = new HashSet<>();
        HashSet<Integer> set2 = new HashSet<>();
        for (int n : nums2) {
            set2.add(n);
        }
        for (int n : nums1) {
            set1.add(n);
        }
        for (int n : nums2) {
            set1.remove(n);
        }
        for (int n : nums1) {
            set2.remove(n);
        }
 
        return List.of(List.copyOf(set1), List.copyOf(set2));
    }
}


相关文章
|
4天前
|
存储 JavaScript 算法
TypeScript算法专题 - blog4 - 单链表节点的两-两翻转(两两一组逆序)
TypeScript算法专题 - blog4 - 单链表节点的两-两翻转(两两一组逆序)
30 0
|
7月前
|
算法 容器
算法:双指针解决数组划分和数组分块问题
算法:双指针解决数组划分和数组分块问题
|
4天前
|
算法
算法系列--动态规划--⼦数组、⼦串系列(数组中连续的⼀段)(1)(上)
算法系列--动态规划--⼦数组、⼦串系列(数组中连续的⼀段)(1)
22 0
|
4天前
|
存储 算法
算法系列--动态规划--⼦数组、⼦串系列(数组中连续的⼀段)(1)(下)
算法系列--动态规划--⼦数组、⼦串系列(数组中连续的⼀段)(1)
19 0
|
4天前
|
存储 算法 Java
数据结构和算法面试题:给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
数据结构和算法面试题:给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
44 0
|
4天前
|
存储 设计模式 算法
【数据结构和算法】找出两数组的不同
这是力扣的 2215 题,难度为简单,解题方案有很多种,本文讲解我认为最奇妙的一种。给你两个下标从0开始的整数数组nums1和nums2,请你返回一个长度为2的列表answer,其中: answer[0]是nums1中所有不存在于nums2中的不同整数组成的列表。 answer[1]是nums2中所有不存在于nums1中的不同整数组成的列表。 注意:列表中的整数可以按任意顺序返回。
51 1
|
11月前
|
存储 Python
Python实现划分数组为连续数字的集合
Python实现划分数组为连续数字的集合
79 0
图解LeetCode——1798. 你能构造出连续值的最大数目
图解LeetCode——1798. 你能构造出连续值的最大数目
51 0
|
算法
算法练习——(3)合并数组
有两个已经排好序的数组,A:{9,28,38,40,56,65,78,82} B:{13,21,33,38,45},请定义一个新数组,将这两个数组中的数据合并到新数组中并且保证数据仍然是有序的。
【集合论】序关系 ( 偏序集元素之间的关系 | 可比 | 严格小于 | 覆盖 | 哈斯图 )
【集合论】序关系 ( 偏序集元素之间的关系 | 可比 | 严格小于 | 覆盖 | 哈斯图 )
335 0
【集合论】序关系 ( 偏序集元素之间的关系 | 可比 | 严格小于 | 覆盖 | 哈斯图 )