Given two 0-indexed integer arrays nums1 and nums2, return a listanswerof size2where:
answer[0]is a list of all distinct integers innums1which are not present innums2.
answer[1]is a list of all distinct integers innums2which are not present innums1.
Note that the integers in the lists may be returned in any order.
Example 1:
Input: nums1 = [1,2,3], nums2 = [2,4,6]
Output: [[1,3],[4,6]]
Explanation:
For nums1, nums1[1] = 2 is present at index 0 of nums2, whereas nums1[0] = 1 and nums1[2] = 3 are not present in nums2. Therefore, answer[0] = [1,3].
For nums2, nums2[0] = 2 is present at index 1 of nums1, whereas nums2[1] = 4 and nums2[2] = 6 are not present in nums2. Therefore, answer[1] = [4,6].
Example 2:
Input: nums1 = [1,2,3,3], nums2 = [1,1,2,2]
Output: [[3],[]]
Explanation:
For nums1, nums1[2] and nums1[3] are not present in nums2. Since nums1[2] == nums1[3], their value is only included once and answer[0] = [3].
Every integer in nums2 is present in nums1. Therefore, answer[1] = [].
Constraints:
1 <= nums1.length, nums2.length <= 1000
-1000 <= nums1[i], nums2[i] <= 1000
Solutions
Solution 1: Hash Table
We define two hash tables \(s1\) and \(s2\) to store the elements in arrays \(nums1\) and \(nums2\) respectively. Then we traverse each element in \(s1\). If this element is not in \(s2\), we add it to the first list in the answer. Similarly, we traverse each element in \(s2\). If this element is not in \(s1\), we add it to the second list in the answer.
The time complexity is \(O(n)\), and the space complexity is \(O(n)\). Where \(n\) is the length of the array.