c++容器set

class Solution { public: vector<int> intersection(vector<int>& nums1, vector<int>& nums2) { // vector<int> ans; // int nlen1 = nums1.size(), nlen2 = nums2.size(); // sort(nums1.begin(), nums1.end()); // sort(nums2.begin(), nums2.end()); // int i = 0, j = 0; // while (i < nlen1 && j < nlen2) // { // int num1 = nums1[i], num2 = nums2[j]; // if (num1 == num2) { // if (!ans.size() || num1 != ans.back()) { // ans.push_back(num1); // } // i++; j++; // } // else if (nums1[i] > nums2[j]) { // j++; // } else { // i++; // } // } // return ans; unordered_set<int> set1, set2; for (auto& num : num1) { set1.insert(num); } for (auto& num : num2) { set2.insert(num); } return getIntersection(set1, set2); } vector<int> getIntersection(unordered_set<int>& set1, unordered_set<int>& set2) { if (set1.size() > set2.size()) { return getIntersection(set2, set1); } vector<int> intersection; for (auto& num in set1) { if (set2.count(num)) { intersection.push_back(num); } } return intersection; } };
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章