Notice
250x250
Recent Posts
Recent Comments
Link
넘치게 채우기
[LeetCode] 2215. Find the Difference of Two Arrays 본문
728x90
반응형
https://leetcode.com/problems/find-the-difference-of-two-arrays/description/
문제 유형 : 해시 테이블
문제 난이도 : Easy
문제
Given two 0-indexed integer arrays nums1 and nums2, return a list answer of size 2 where:
- answer[0] is a list of all distinct integers in nums1 which are not present in nums2.
- answer[1] is a list of all distinct integers in nums2 which are not present in nums1.
Note that the integers in the lists may be returned in any order.
0-인덱스의 int 배열 nums1과 nums2가 있는데, 다음의 2차원배열을 출력하라:
answer[0]에는 nums1에만 있는 수가 있어야하고,
answer[1]에는 nums2에만 있는 수가 있어야한다.
+ 반환되는 수들의 순서는 고려하지 않는다.
입력
배열 nums1, nums2를 받는다
출력
2차원 배열 answer를 조건에 맞게 반환한다.
풀이
c++에서 제공하는 unordered_set로 시간복잡도를 줄인다. 그리고 count함수를 이용해서 상대 배열에 값이 있는지 구하면 된다.
파이썬에서도 set를 이용하면 되고, set1 - set2를 하면 set1에만 있는 수만 남아서(차집합) 쉽고 깔끔하게 구할 수 있다.
코드(C++)
class Solution {
public:
vector<vector<int>> findDifference(vector<int>& nums1, vector<int>& nums2) {
vector<vector<int>> answer(2, vector<int>()):
unordered_set<int> set1(nums1.begin(), nums1.end());
unordered_set<int> set2(nums2.begin(), nums2.end());
for (int num : set1) {
if (!set2.count(num)) {
answer.at(0).push_back(num);
}
}
for (int num : set2) {
if (!set1.count(num)) {
answer.at(1).push_back(num);
}
}
return answer;
}
};
728x90
반응형
'PS > LeetCode' 카테고리의 다른 글
[LeetCode] 1456. Maximum Number of Vowels in a Substring of Given Length (0) | 2023.05.07 |
---|---|
[LeetCode] 649. Dota2 Senate (0) | 2023.05.04 |
[LeetCode] 29. Divide Two Integers (0) | 2023.05.03 |
[LeetCode] 1491. Average Salary Excluding the Minimum and Maximum Salary (0) | 2023.05.01 |
[LeetCode] 1137. N-th Tribonacci Number (0) | 2023.04.30 |