题解 | #两个数组的交集#

两个数组的交集

https://www.nowcoder.com/practice/56ea71d1f4e94de2aaec10e985874cce

//这一题使用了哈希表的思路来找到重复元素。
#include <unordered_set>
#include <vector>
class Solution {

  private:
    unordered_set<int>s1;
    unordered_set<int>s2;
  public:
    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
        s1.clear();
        s2.clear();
        vector<int>result;
        for (const int num : nums1) { //先遍历nums1,记录它有的元素是哪些
            if (s1.count(num) ==
                    0) { //如果nums1中有元素尚未被添加,那就添加。
                s1.emplace(num);
            }
        }
        for (const int num :
                nums2) { //遍历nums2,看看它里面的哪些元素nums1里已经有了
            if (s2.count(num) == 1)//如果是nums2中的重复元素,直接跳过,因为之前肯定已经处理过了。
            {
                continue;
            } 
            else//如果nums2里是第一次见到这个元素
            {
                if (s1.count(num) == 1) //如果这个元素nums1里恰好存在,那就往result里加入。
                {
                    result.emplace_back(num);
                }
                s2.emplace(num);//不管nums1里存在与否,s2都得记录 。
            }
        }
        return result;
    }
};

全部评论

相关推荐

11-09 14:54
已编辑
华南农业大学 产品经理
大拿老师:这个简历,连手机号码和照片都没打码,那为什么关键要素求职职位就不写呢? 从上往下看,都没看出自己到底是产品经理的简历,还是电子硬件的简历? 这是一个大问题,当然,更大的问题是实习经历的描述是不对的 不要只是去写实习流程,陈平,怎么去开会?怎么去讨论? 面试问的是你的产品功能点,是怎么设计的?也就是要写项目的亮点,有什么功能?这个功能有什么难处?怎么去解决的? 实习流程大家都一样,没什么优势,也没有提问点,没有提问,你就不得分 另外,你要明确你投的是什么职位,如果投的是产品职位,你的项目经历写的全都是跟产品无关的,那你的简历就没用 你的面试官必然是一个资深的产品经理,他不会去问那些计算机类的编程项目 所以这种四不像的简历,在校招是大忌
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务