[LeetCode] Intersection of Two Arrays II Java

dustle·2023년 5월 30일
1

Intersection of Two Arrays II

중복된 숫자를 찾아서 반환하는 문제입니다.

첫번째 배열에서 Map 에 개수를 저장해놓고
두번째 배열을 돌 때 0 초과면 반환할 List 에 넣고
중복된 숫자가 반복될 수 있으므로 Map 에서 개수를 -1 합니다.

import java.util.*;

class Solution {
    public int[] intersect(int[] nums1, int[] nums2) {
        Map<Integer, Integer> map = new HashMap<>();    

        for(int num : nums1) {
            int count = map.getOrDefault(num, 0);

            map.put(num, count + 1);
        }

        List<Integer> answer = new ArrayList<>();
        for(int num : nums2) {
            int count = map.getOrDefault(num, 0);

            if(count > 0) {
                answer.add(num);
                map.put(num, count - 1);
            }
        }

        return answer.stream().mapToInt(Integer::intValue).toArray();
    }
}

0개의 댓글