letecode [349] - Intersection of Two Arrays

Posted lpomeloz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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%的用户

以上是关于letecode [349] - Intersection of Two Arrays的主要内容,如果未能解决你的问题,请参考以下文章

letecode [136] - Single Number

letecode [409] - Longest Palindrome

letecode [437] - Path Sum III

letecode [169] - Majority Element

letecode [412] - Fizz Buzz

letecode [459] - Repeated Substring Pattern