2215. Find the Difference of Two Arrays

2215. Find the Difference of Two Arrays #

题目 #

  • 给你两个下标从 0 开始的整数数组 nums1nums2 ,请你返回一个长度为 2 的列表 answer ,其中:
    • answer[0]nums1 中所有 存在于 nums2 中的 不同 整数组成的列表。
    • answer[1]nums2 中所有 存在于 nums1 中的 不同 整数组成的列表。
  • **注意:**列表中的整数可以按 任意 顺序返回。

思路 #

哈希 #

代码 #

哈希 #

class Solution {
    public List<List<Integer>> findDifference(int[] nums1, int[] nums2) {
        List<Integer> diff1 = new LinkedList<>(), diff2 = new LinkedList<>();
        Set<Integer> set1 = new HashSet<>(), set2 = new HashSet<>();
        for (int num: nums1) set1.add(num);
        for (int num: nums2) set2.add(num);
        for (int num: set1) {
            if (set2.contains(num) == false) diff1.add(num);
        }
        for (int num: set2) {
            if (set1.contains(num) == false) diff2.add(num);
        }
        List<List<Integer>> ans = new LinkedList<>();
        ans.add(diff1);
        ans.add(diff2);
        return ans;
    }
}