Teaching Kids Programming – Find the Difference of Two Arrays (via Hash Set)


Teaching Kids Programming: Videos on Data Structures and Algorithms

Given two 0-indexed integer arrays nums1 and nums2, return a list answer of size 2 where:

answer[0] is a list of all distinct integers in nums1 which are not present in nums2.
answer[1] is a list of all distinct integers in nums2 which are not present in nums1.
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

Hints:
For each integer in nums1, check if it exists in nums2.
Do the same for each integer in nums2.

Find the Difference of Two Arrays (via Hash Set)

Converting numbers to sets (Hash Set), then we can use the difference and convert to list. a.difference(b) is same as a-b.

1
2
3
4
5
class Solution:
    def findDifference(self, nums1: List[int], nums2: List[int]) -> List[List[int]]:        
        c1 = set(nums1)
        c2 = set(nums2)
        return [list(c1.difference(c2)), list(c2.difference(c1))]
class Solution:
    def findDifference(self, nums1: List[int], nums2: List[int]) -> List[List[int]]:        
        c1 = set(nums1)
        c2 = set(nums2)
        return [list(c1.difference(c2)), list(c2.difference(c1))]

We can also use the list comprehension to find the difference between two arrays/sets.

1
2
3
4
class Solution:
    def findDifference(self, nums1: List[int], nums2: List[int]) -> List[List[int]]:        
        return [[x for x in set(nums1) if x not in set(nums2)], 
                [x for x in set(nums2) if x not in set(nums1)]]
class Solution:
    def findDifference(self, nums1: List[int], nums2: List[int]) -> List[List[int]]:        
        return [[x for x in set(nums1) if x not in set(nums2)], 
                [x for x in set(nums2) if x not in set(nums1)]]

–EOF (The Ultimate Computing & Technology Blog) —

GD Star Rating
a WordPress rating system
454 words
Last Post: Teaching Kids Programming - Back-tracking Depth First Search Algorithm to Restore IP Addresses
Next Post: Teaching Kids Programming - Finding All Subsets via Backtracking Algorithm (Recursion / Depth First Search)

The Permanent URL is: Teaching Kids Programming – Find the Difference of Two Arrays (via Hash Set)

Leave a Reply