letecode [349] - Intersection of Two Arrays
Given two arrays, write a function to compute their intersection.
Example 1:
Input: nums1 = [1,2,2,1], nums2 = [2,2]
Output: [2]
Example 2:
Input: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
Output: [9,4]
Note:
- Each element in the result must be unique.
- The result can be in any order.
题目大意:
给定两个数组,求他们的交集。
理 解:
用set存放数组1不重复的元素。遍历数组2,若当前元素在集合set中,则放入交集,并从set中删除该元素。
代 码 C++:
class Solution { public: vector<int> intersection(vector<int>& nums1, vector<int>& nums2) { vector<int> res; if(nums1.size()==0 || nums2.size()==0) return res; set<int> m_set; for(int v1:nums1){ m_set.insert(v1); } for(int v2:nums2){ if(m_set.find(v2)!=m_set.end()){ res.push_back(v2); m_set.erase(v2); } } return res; } };
运行结果:
执行用时 :12 ms, 在所有 C++ 提交中击败了93.04%的用户
内存消耗 :9.3 MB, 在所有 C++ 提交中击败了61.95%的用户