반응형
문제
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.
nums1과 nums2 에서 겹치는 원소를 모아서 intArray로 반환해야 합니다.
예시
풀이
class Solution {
fun intersect(nums1: IntArray, nums2: IntArray): IntArray? {
//기본값들을 initialize 해줍니다
val list: MutableList<Int> = ArrayList()
var i = 0
var j = 0
//순서대로 나열합니다.
Arrays.sort(nums1)
Arrays.sort(nums2)
//nums1의 사이즈가 i보다 작을때까지 혹은 j가 nums2의 size보다 작을때 까지 반복합니다
while (i < nums1.size && j < nums2.size) {
if (nums1[i] == nums2[j]) {
list.add(nums1[i])
i++//i 와 j 는 1씩 증가합니다.
j++
} else if (nums1[i] < nums2[j]) { //sort를 했기때문에 차례로 커집니다.
i++
} else {
j++
}
}
return list.stream().mapToInt { k: Int? -> k!! }.toArray()
}
}
반응형