코린이의 소소한 공부노트

[LeetCode/Easy] 349. Intersection of Two Arrays 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 349. Intersection of Two Arrays

무지맘 2023. 5. 18. 11:16

1. Input

1) int[] nums1

2) int[] nums2

 

2. Output

1) nums1nums2의 교집합을 반환

- 이때 중복되는 요소는 1번만 포함한다.

- 담는 순서는 상관 없다.

 

3. Constraint

1) 1 <= nums1.length, nums2.length <= 1000

2) 0 <= nums1[i], nums2[i] <= 1000

 

4. Example

Input: nums1 = [1,2,2,1], nums2 = [2,2] -> Output: [2]

Input: nums1 = [4,9,5], nums2 = [9,4,9,8,4] -> Output: [9,4]

 

5. Code

1) 첫 코드(2023/05/18)

class Solution {
    public int[] intersection(int[] nums1, int[] nums2) {
        HashSet<Integer> s1 = new HashSet<>();
        HashSet<Integer> s2 = new HashSet<>();
        for(int i : nums1)
            s1.add(i);
        for(int i : nums2)
            s2.add(i);
        s1.retainAll(s2);
        int[] ans = new int[s1.size()];
        Iterator it = s1.iterator();
        for(int i=0 ; i<ans.length ; i++)
            ans[i] = (int)it.next();
        return ans;    
    }
}