| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 
 | class Solution {public:
 vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {
 map<int, int> v,n;
 vector<int> ans;
 for (int x : nums1) {
 v[x]++;
 }
 for (int x : nums2) {
 n[x]++;
 }
 sort(nums1.begin(), nums1.end());
 nums1.erase(unique(nums1.begin(), nums1.end()), nums1.end());
 for (int x : nums1) {
 if (v[x] && n[x]) {
 int l = v[x] > n[x] ? n[x] : v[x];
 for (int i = 0; i < l; i++)
 ans.push_back(x);
 }
 }
 return ans;
 }
 };
 
 |