1 2 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; } };
|