350. Intersection of Two Arrays II

lsh__97·2021년 12월 6일
0

리트코드

목록 보기
4/7

문제 설명

Given two integer arrays nums1 and nums2, return an array of their intersection. Each element in the result must appear as many times as it shows in both arrays and you may return the result in any order.

Example

example 1

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

expample 2

Input: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
Output: [4,9]
Explanation: [9,4] is also accepted.

Idea

이 문제는 두 배열의 교집합을 찾아내는 문제입니다. 그래서 간단하게 nums1 배열을 map에 추가해주고 값은 숫자 개수 로 할당 해준뒤, nums2 배열을 탐색하면서 해당 아이템 값이 map에 있고, 값이 0 이상인경우 배열에 삽입해주었습니다!.

Solution

var intersect = function(nums1, nums2) {
    const result = []
    const map = new Map()
    for(let x of nums1){
         if(map.has(x)){
            map.set(x,map.get(x)+1)                
        }else{
            map.set(x,1)
        }
    }
    for(let x of nums2){
         if(map.has(x) && map.get(x)>0) {
            map.set(x,map.get(x)-1)
            result.push(x)
        }
    }
   return result
};
profile
기록 기록 기록..

0개의 댓글