class Solution {
public:
vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {
if (nums1.empty())
return nums1;
if (nums2.empty())
return nums2;
map<int, int> store;
for (auto v : nums1) {
store[v]++;
}
vector<int> result;
for (auto v : nums2) {
if (store[v] > 0) {
result.push_back(v);
store[v]--;
}
}
return result;
}
};
Python
classSolution(object):defintersect(self, nums1, nums2):"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: List[int]
"""
store = {}
for x in nums1:
if store.get(x, 'N/A') == 'N/A':
store[x] = 1else:
store[x] = store[x] + 1
result = []
for v in nums2:
if store.get(v, 'N/A') != 'N/A'and store.get(v, 'N/A') > 0:
result.append(v)
store[v] = store[v]-1return result