会了两数组的交I, II自然就很简单了:
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) {
sort(nums1.begin(), nums1.end());
sort(nums2.begin(), 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++;
} else {
if (*p1 < *p2) {
p1++;
} else {
p2++;
}
}
}
return result;
}
};