返回两个数组的交
样例
nums1 = [1, 2, 2, 1]
, nums2 = [2, 2]
, 返回 [2]
.
挑战
可以用三种不同的方法实现吗?
解题思路:
哈希表。先建立一个unordered_set存放nums1,然后在其中寻找nums2中的元素,如果找到就放进另外一个unordered_set中作为结果,最后用vector返回结果。
class Solution {
public:
/*
* @param nums1: an integer array
* @param nums2: an integer array
* @return: an integer array
*/
vector<int> intersection(vector<int> nums1, vector<int> nums2)
{
// write your code here
unordered_set<int> s(nums1.begin(),nums1.end());
unordered_set<int> res;
for(int i : nums2)
if(s.count(i))
res.insert(i);
return vector<int>(res.begin(),res.end());
}
};