题目:返回两个数组的交
样例:
nums1 = [1, 2, 2, 1]
, nums2 = [2, 2]
, 返回 [2]
.
代码:
class Solution {
public:
/**
* @param nums1 an integer array
* @param nums2 an integer array
* @return an integer array
*/
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
// Write your code here
sort(nums1.begin(), nums1.end());
sort(nums2.begin(), nums2.end());
nums1.erase(unique(nums1.begin(), nums1.end()), nums1.end());
nums2.erase(unique(nums2.begin(), nums2.end()), nums2.end());
vector<int> result;
auto p1 = nums1.begin();
auto p2 = nums2.begin();
while (p1 != nums1.end() && p2 != nums2.end()) {
if (*p1==*p2)
{
result.push_back(*p1);
p1++;
p2++;
}
if (*p1 < *p2)
p1++;
if (*p1 > *p2)
p2++;
}
return result;
}
};