반응형
포인트
1. map, dictionary 를 이용해서 수를 계산을 하고 중복되는 값을 찾아보자
🧶문서는 항상 수정 될 수 있습니다. 비판은 환영합니다.
c++/cpp
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {
unordered_map<int, int> map;
if(nums1.size() < nums2.size()){
swap(nums1, nums2);
}
for(auto ele : nums1){
map[ele]+=1;
}
vector<int> result;
for (auto ele: nums2){
if(map[ele]>0){
map[ele]-=1;
result.push_back(ele);
}
}
sort(result.begin(), result.end());
return result;
}
};
python
class Solution:
def intersect(self, nums1: List[int], nums2: List[int]) -> List[int]:
if len(nums1) < len(nums2):
nums1, nums2 = nums2, nums1
dict1 = {}
for ele in nums1:
dict1[ele] = dict1.get(ele, 0) + 1
result = []
for ele in nums2:
if(dict1.get(ele, 0)!=0):
dict1[ele]-=1
result.append(ele)
return sorted(result)
반응형
'알고리즘' 카테고리의 다른 글
[알고리즘] 다음 큰 숫자 (0) | 2021.02.15 |
---|---|
[알고리즘] Shortest Path in Binary Matrix (0) | 2021.02.14 |
[알고리즘] Excel Sheet Column Number (0) | 2021.02.12 |
[알고리즘] Number of Steps to Reduce a Number to Zero (0) | 2021.02.12 |
[알고리즘] Determine if String Halves Are Alike (0) | 2021.02.04 |
댓글