题目链接:. - 力扣(LeetCode)
- 使用vector容器:
/* vector解法 */
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
vector<int> hash(1001, 0), res;
for(int i=0; i<nums1.size(); i++){
hash[nums1[i]] = 1;
}
for(int i=0; i<nums2.size(); i++){
if(hash[nums2[i]] == 1){
res.push_back(nums2[i]);
hash[nums2[i]] = 0;
}
}
return res;
}
};
- 使用set:
/* set解法 */
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
unordered_set<int> result_set; // 存放结果,之所以⽤set是为了给结果集去重
unordered_set<int> nums_set(nums1.begin(), nums1.end()); // 把nums1放进set中
for (int num : nums2) { // 遍历nums2
// 发现nums2的元素 在nums_set⾥⼜出现过
if (nums_set.find(num) != nums_set.end()) {
result_set.insert(num);
}
}
return vector<int>(result_set.begin(), result_set.end()); // 类型转换
}
};