leetcode

Solution to some Leetcode problems written in C++
git clone git://git.dimitrijedobrota.com/leetcode.git
Log | Files | Refs | README | LICENSE

0349.cpp (1055B)


0 1 class Solution { 2 public: 3 vector<int> intersection(vector<int> &nums1, vector<int> &nums2) const { 4 const int n = size(nums1), m = size(nums2); 5 int i = 0, j = 0; 6 vector<int> res; 7 8 sort(begin(nums1), end(nums1)); 9 sort(begin(nums2), end(nums2)); 10 while (i < n && j < m) { 11 if (nums1[i] == nums2[j]) { 12 const int crnt = nums1[i]; 13 res.push_back(crnt); 14 while (i < n && nums1[i] == crnt) 15 i++; 16 while (j < m && nums2[j] == crnt) 17 j++; 18 } else if (nums1[i] > nums2[j]) 19 j++; 20 else 21 i++; 22 } 23 return res; 24 } 25 }; 26 27 class Solution { 28 public: 29 vector<int> intersection(const vector<int> &nums1, const vector<int> &nums2) const { 30 unordered_set<int> st(begin(nums1), end(nums1)); 31 vector<int> res; 32 for (const int n : nums2) { 33 if (st.erase(n)) res.push_back(n); 34 } 35 return res; 36 } 37 };