思路:
返回两数组的交集,且保证元素唯一。
模拟寻找交集过程:遍历存储数组nums1,遍历nums2,对当前元素进行查找,查看nums1中是否有此元素。
涉及查找,是哈希表!使用set进行单值存储,哈希表存储当前元素。
unordered_set<int> has(nums1.begin(), nums1.end());
哈希表存储数组nums1,遍历nums2,查找哈希表,为了确保返回u元素唯一,我们使用哈希表进行去重操作,因为哈希表保证键的唯一性。
代码:
class Solution { public: vector<int> intersection(vector<int>& nums1, vector<int>& nums2) { unordered_set<int> has(nums1.begin(), nums1.end()); unordered_set<int> tab; for(auto &i:nums2){ if(has.count(i)) tab.insert(i); } return vector<int>(tab.begin(),tab.end()); } };