Daily LeetCode Challenge - 2215. Find the Difference of Two Arrays

Min Young Kim·2023년 5월 3일
0

algorithm

목록 보기
137/198

Problem From.
https://leetcode.com/problems/find-the-difference-of-two-arrays/

오늘 문제는 두개의 리스트가 주어졌을때, 각 리스트에서 서로 중복되는 요소를 빼고 나머지 요소를 넣은 list 를 반환하는 문제였다.

nums1 에 있는 요소를 nums2 에서 빼고 nums2 에 있는 요소를 nums1 에서 빼는 식으로 구현하였어야했다.
데이터의 삭제속도를 빠르게 하기 위해서 nums1 과 nums2 를 둘다 hashSet 으로 구현한 다음에 nums1 을 돌면서 set2 의 요소를 삭제하고 nums2 를 돌면서 set1 의 요소를 삭제하는 식으로 해주었다. 그 결과 아래 풀이의 시간 복잡도는 O(N) 이 된다.

class Solution {
    fun findDifference(nums1: IntArray, nums2: IntArray): List<List<Int>> {

        val set1 = nums1.toMutableSet()
        val set2 = nums2.toMutableSet()

        nums1.forEach {
            set2.remove(it)
        }

        nums2.forEach {
            set1.remove(it)
        }

        return listOf(set1.toList(), set2.toList())

    }
}
profile
길을 찾는 개발자

0개의 댓글