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.
Subscribe to see which companies asked this question
注意,vector.back()操作需要先保证vector里面有元素,不然就是错误的操作。
代码
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
sort(nums1.begin(),nums1.end());
sort(nums2.begin(),nums2.end());
int len1=nums1.size();
int len2=nums2.size();
vector<int> result;
int t1=0;
int t2=0;
while(t1<len1 && t2<len2)
{
if(nums1[t1]==nums2[t2] )
{
if(result.empty()||nums1[t1]!=result.back())
result.push_back(nums1[t1]);
t1++;
t2++;
}
else if(nums1[t1]<nums2[t2])
t1++;
else
t2++;
}
return result;
}
};