牛客NC313 | 两个数组的交集

描述

给定两个整数数组分别为𝑛𝑢𝑚𝑠1nums1, 𝑛𝑢𝑚𝑠2nums2,找到它们的公共元素并按返回。

数据范围:

1≤𝑛𝑢𝑚𝑠1.𝑙𝑒𝑛𝑔𝑡ℎ,𝑛𝑢𝑚𝑠2.𝑙𝑒𝑛𝑔𝑡ℎ≤10001≤nums1.length,nums2.length≤1000
1≤𝑛𝑢𝑚𝑠1[𝑖],𝑛𝑢𝑚𝑠2[𝑖]≤10001≤nums1[i],nums2[i]≤1000

示例1

输入:

[1,2 ],[2,2,2,2]

复制返回值:

[2]

复制说明:

两个数组的公共元素只有2 

示例2

输入:

[1,2,3],[8,2,2,3,8]

复制返回值:

[2,3]

复制说明:

两个数组的公共元素为2和3,返回[3,2]也是一个正确的答案 
class Solution {
public:
    bool hash[1001] = { false };
    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
        vector<int> ret;
        ret.reserve(nums1.size() > nums2.size() ? nums1.size() : nums2.size());
        for (auto& n1 : nums1) hash[n1] = true;
        for (auto& n2 : nums2) {
            if (hash[n2]) {
                ret.push_back(n2); 
                hash[n2] = false;
            }
        }
        return ret;
    }
};

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

福楠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值