题目:
代码(首刷看解析 2024年1月14日):
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
unordered_set<int> a;
unordered_set<int> res;
for(int i = 0; i < nums1.size(); ++i) {
a.emplace(nums1[i]);
}
for(int i = 0; i < nums2.size(); ++i) {
if(a.find(nums2[i]) != a.end()){
res.insert(nums2[i]);
}
}
return vector<int>(res.begin(),res.end());
}
};
这题主要是考虑对无序容器的熟悉程度。
代码(二刷自解 2024年4月23日)
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
unordered_set<int> us(nums1.begin(), nums1.end());
vector<int> res;
for (const auto it : nums2) {
if (us.contains(it)) {
res.push_back(it);
us.erase(it);
}
}
return res;
}
};