LeetCode 75: 2215. Find the Difference of Two Arrays

김준수·2024년 3월 8일
0

LeetCode 75

목록 보기
20/63
post-custom-banner

2215. Find the Difference of Two Arrays

Description

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.


첫 번쨰 인덱스가 0부터 시작하는 정수 배열 num1nums2 두 개가 주어지면, 다음과 같은 값을 가지는 크기가 2인 list answer를 반환합니다

  • answer[0]은 nums1 값들끼리 서로 중복이 없고 num2의 값들이 제외된 list입니다.
  • answer[1]은 nums2 값들끼리 서로 중복이 없고 num1의 값들이 제외된 list입니다.

answer의 정수는 순서 상관없이 반환할 수 있습니다.

Example 1:

Input: nums1 = [1,2,3], nums2 = [2,4,6]
Output: [[1,3],[4,6]]

Example 2:

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

Constraints:

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

Solution


import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;

class Solution {
    public List<List<Integer>> findDifference(int[] nums1, int[] nums2) {
        Set<Integer> num1Set = Arrays.stream(nums1).boxed().collect(Collectors.toSet());
        Set<Integer> num2Set = Arrays.stream(nums2).boxed().collect(Collectors.toSet());

        List<List<Integer>> answer = new ArrayList<>();
        answer.add(num1Set.stream().filter(e -> !num2Set.contains(e)).collect(Collectors.toList()));
        answer.add(num2Set.stream().filter(e -> !num1Set.contains(e)).collect(Collectors.toList()));

        return answer;
    }
}

post-custom-banner

0개의 댓글