題目:
Given two arrays, write a function to compute their intersection.
思路:
利用unordered_map<int, bool> my_map
保存nums1所有元素,然後遍歷nums2。如果某個元素已經遍歷過了,則將其在my_map中的值置爲true。
代碼實現:
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
unordered_map<int, bool> my_map;
for (int i = 0; i < nums1.size(); ++i){
my_map[nums1[i]] = false;
}
vector<int> ans;
for (int i = 0; i < nums2.size(); ++i){
if (my_map.find(nums2[i]) != my_map.end()){
if (my_map[nums2[i]] == false){
ans.push_back(nums2[i]);
my_map[nums2[i]] = true;
}
}
}
return ans;
}
};