描述
给定两个整数数组分别为𝑛𝑢𝑚𝑠1nums1, 𝑛𝑢𝑚𝑠2nums2,找到它们的公共元素并按返回。
数据范围:
1≤𝑛𝑢𝑚𝑠1.𝑙𝑒𝑛𝑔𝑡ℎ,𝑛𝑢𝑚𝑠2.𝑙𝑒𝑛𝑔𝑡ℎ≤10001≤nums1.length,nums2.length≤1000
1≤𝑛𝑢𝑚𝑠1[𝑖],𝑛𝑢𝑚𝑠2[𝑖]≤10001≤nums1[i],nums2[i]≤1000
示例1
输入:
[1,2 ],[2,2,2,2]
复制返回值:
[2]
复制说明:
两个数组的公共元素只有2
示例2
输入:
[1,2,3],[8,2,2,3,8]
复制返回值:
[2,3]
复制说明:
两个数组的公共元素为2和3,返回[3,2]也是一个正确的答案
class Solution {
public:
bool hash[1001] = { false };
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
vector<int> ret;
ret.reserve(nums1.size() > nums2.size() ? nums1.size() : nums2.size());
for (auto& n1 : nums1) hash[n1] = true;
for (auto& n2 : nums2) {
if (hash[n2]) {
ret.push_back(n2);
hash[n2] = false;
}
}
return ret;
}
};