넘치게 채우기

[LeetCode] 349. Intersection of Two Arrays 본문

PS/LeetCode

[LeetCode] 349. Intersection of Two Arrays

riveroverflow 2024. 3. 10. 13:53
728x90
반응형

https://leetcode.com/problems/intersection-of-two-arrays/description/

Leetcode - Intersection of Two Arrays

문제 유형 : 해시, 그리디

문제 난이도 : Easy

 

문제

Given two integer arrays nums1 and nums2, return an array of their intersection. Each element in the result must be unique and you may return the result in any order.

 

두 정수배열 nums1과 nums2가 주어진다.

교차점을 반환하시오.

 

결과의 각 요소는 값이 겹치면 안되고, 순서는 상관없습니다.

 

풀이

해시맵에 nums1의 요소의 개수들을 저장한다.

nums2를 순회하면서, 해시맵에 nums1에 있던값임이 확인되었다면, 정답 집합에 넣는다.

 

정답 집합을 배열로 변환시켜 반환한다.

 

코드

C++

class Solution {
public:
    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
        const int n = nums1.size();
        const int m = nums2.size();
        unordered_map<int, int> mp;
        set<int> ans;

        for(int i = 0; i < n; i++) {
            mp[nums1[i]]++;
        }

        for(int j = 0; j < m; j++) {
            if(mp[nums2[j]] > 0) ans.insert(nums2[j]);
        }

        return vector<int>(ans.begin(), ans.end());
    }
};
728x90
반응형