Given two arrays, write a function to compute their intersection.
Example:
Given nums1 = [1, 2, 2, 1]
, nums2 = [2, 2]
, return [2]
.
Note:
- Each element in the result must be unique.
- The result can be in any order.
实现:
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
map<int,bool> maps;
vector<int> vi;
for (int i = 0; i < nums1.size(); i++) {
maps[nums1[i]] = true;
}
for (int i = 0; i < nums2.size(); i++) {
auto it = maps.find(nums2[i]);
if (it != maps.end()) {
vi.push_back(nums2[i]);
maps.erase(it);
}
}
return vi;
}
};
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
map<int,bool> maps;
vector<int> vi;
for (int i = 0; i < nums1.size(); i++) {
maps[nums1[i]] = true;
}
for (int i = 0; i < nums2.size(); i++) {
auto it = maps.find(nums2[i]);
if (it != maps.end()) {
vi.push_back(nums2[i]);
maps.erase(it);
}
}
return vi;
}
};