leetcodeSolution to some Leetcode problems written in C++ |
git clone git://git.dimitrijedobrota.com/leetcode.git |
Log | Files | Refs | README | LICENSE |
0349.cpp (1055B)
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;
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 };
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 };