Explore : Interview > Top Interveiw Questions > Easy Collection
분류 : Array
난이도 : Easy
Problem
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.
Input: nums1 = [4,9,5], nums2 = [9,4,9,8,4] Output: [4,9] Explanation: [9,4] is also accepted.
Constraints
1 <= nums1.length, nums2.length <= 1000
0 <= nums1[i], nums2[i] <= 1000
Solution
Exapnder
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
classSolution { funintersect(nums1: IntArray, nums2: IntArray): IntArray { val list1 = nums1.toMutableList() val list2 = nums2.toMutableList() val result = mutableListOf<Int>()
for (i in list2.indices) { if (list1.contains(list2[i])) { result.add(list2[i]) list1.removeAt(list1.indexOf(list2[i])) } } return result.toIntArray() } }
Point of Thinking
교집합만 구한다면 intersect 메서드를 실행하면 되겠지만, Example 1처럼 중복되는 것도 카운트 해줘야한다.