https://leetcode.com/problems/intersection-of-two-arrays-ii/
Given two arrays, write a function to compute their intersection.
Example:
Given nums1 = [1, 2, 2, 1]
, nums2 = [2, 2]
, return [2, 2]
.
Note:
Follow up:
class Solution {
public:
vector intersect(vector& nums1, vector& nums2) {
vector res;
if (nums1.size() == 0 || nums2.size() == 0){
return res;
}
unordered_map m;
for (int n : nums1){
m[n]++;//注意利用map这种索引取值的特性
}
for (int n : nums2){
if (m.count(n) && m[n] > 0){
res.push_back(n);
m[n]--;
}
}
return res;
}
};
class Solution {
public:
vector intersect(vector& nums1, vector& nums2) {
vector res;
if (nums1.size() == 0 || nums2.size() == 0){
return res;
}
int i1 = 0, i2 = 0;
while (i1 < nums1.size() && i2 < nums2.size()){
if (nums1[i1] == nums2[i2]){
res.push_back(nums1[i1]);
i1++; i2++;
}
else if (nums1[i1] < nums2[i2]){
i1++;
}
else{
i2++;
}
}
return res;
}
};