자바 코딩테스트
리트코드 349 두 배열의 교집합
백엔드 개발자
2025. 4. 22. 01:22
두 개의 정수 배열 nums1과 nums2 가 주어지면 해당 배열을nums2 반환합니다.교차로. 결과의 각 요소는 고유 해야 하며, 어떤 순서 로든 결과를 반환할 수 있습니다 .
예시 1:
입력: nums1 = [1,2,2,1], nums2 = [2,2]
출력: [2]
예 2:
입력: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
출력: [9,4]
설명: [4,9]도 허용됩니다.
중복제거 : Set을 활용한다.
2개의 교집합 처리는 retainAll을 활용해서 하나로 처리한다.
그다음 set을 int array로 변환만 시켜주면 끝나는 문제였다.
class Solution {
public int[] intersection(int[] nums1, int[] nums2) {
// nums1.
Set<Integer> set = new HashSet<>();
Set<Integer> set2 = new HashSet<>();
for (int i = 0; i < nums1.length; i++) {
set.add(nums1[i]);
}
for (int i = 0; i < nums2.length; i++) {
set2.add(nums2[i]);
}
set.retainAll(set2);
System.out.println(set);
int[] res = set.stream().mapToInt(i -> i).toArray();
return res;
}
}