LeetCode Notes: Intersection of Two Arrays

Question

Given two integer arrays nums1 and nums2, return an array of their intersection. Each element in the result must be unique and you may return the result in any order.

Example 1:

Input: nums1 = [1,2,2,1], nums2 = [2,2]

Output: [2]

Example 2:

Input: nums1 = [4,9,5], nums2 = [9,4,9,8,4]

Output: [9,4]

Explanation: [4,9] is also accepted.

Constraints:

  • 1 <= nums1.length, nums2.length <= 1000
  • 0 <= nums1[i], nums2[i] <= 1000

Solution

Analysis:

  1. Loop one of the arrays to determine whether each number is contained in the other array
  2. Store each included number and remove the duplicates at the end

Code:

/**
  * @param {number[]} nums1
  * @param {number[]} nums2
  * @return {number[]}
  */
var intersection = function(nums1, nums2) {
     // Store the result
     const res = []
     // loop the first array
     nums1.forEach((n)=>{
         // Find numbers in the second array that are also in the first array
         if(nums2.includes(n)){
             res.push(n)
         }
     })

     // deduplication
     return [...new Set(res)]
};

Reference

Comments