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

两个数组的交集

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;
    }
};

全部评论

相关推荐

02-14 12:40
门头沟学院 Java
程序员花海:1.面试要求必须Java笔试不一定 2.难度对等秋招 远超于日常实习是因为同一批次且转正很多 竞争压力大 3.第一个加点指标,上线了就把接口性能加上去 使用本地缓存这个不算亮点 只是技术选型,要把为什么采用这个和背后的思考写出来而不是单纯堆叠技术没意义 4.八股要一直看 很容易忘记 5.拼团交易这个老问题 堆积技术 另外建议你把奖项合并到教育背景 没必要拆出来放最后
我的简历长这样
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
02-24 17:04
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务