原题链接:https://leetcode.com/problems/intersection-of-two-arrays/
原题:
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.
题意:
给你两个数组,要你写一个函数找到他们的交集。注意:交集内元素不能相同,顺序可以随意。
思路:
用一个set来存储第一个数组中出现过的数字,然后遍历第二个数组,用一个vector来保存结果,每次发现交集中的数字,就把数字加入result中,并把这个数字从set里面去除。遍历完成就可以得到结果。
AC代码:
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
set<int> se;
for(int i:nums2)
{
se.insert(i);
}
vector<int> result;
for(int i:nums1){
if(se.find(i)!=se.end())
result.push_back(i);
se.erase(i);
}
return result;
}
};