题解 | #两个数组的交集#
两个数组的交集
http://www.nowcoder.com/practice/56ea71d1f4e94de2aaec10e985874cce
解题思路
- 首先将其中一个数组进行排序
- 然后将排序后的元素逐个插入到临时vector数组中,插入的时候还要查看与相邻元素的值是否相等,相等的话就不插入了。
- 这样得到的临时vector数组就是排序好的无重复数字的数组,然后逐个与另一个数组进行比较,如果是相等的,那么将这个数取出来。
具体代码如下:
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
vector<int> res,nums3; //res为保存结果的数组,nums3为临时排序数组
sort(nums1.begin(),nums1.end());
for(int i=0;i<nums1.size();i++){
nums3.push_back(nums1[i]);
if(nums1[i]==nums1[i+1]){
nums3.pop_back();
}
}
for(int i=0;i<nums3.size();i++){
for(int j=0;j<nums2.size();j++){
if(nums3[i]==nums2[j]){
res.push_back(nums3[i]);
break;
}
}
}
return res;
}
};