力扣:350.两个数组的交集 II

2023-11-08

力扣:350.两个数组的交集 II
题目:
给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。

思路:
查找值的同时,若满足则还要比较此元素在两容器中出现的次数,多了则不填入目标容器中。

次数比较的实现:
次数通过先记录元素在第一个数组中出现的次数,然后若在第二个数组中出现则次数–,次数值为0即大小比较的边界

首先记录第一个数组的每个元素及出现的次数,然后依次判断第二个数组中的元素是否存在于第一个数组中,若存在首先判断其出现的个数是否小于等于0,若小于等于0则表示此时判断的第二个数组中的这个数不能再添加进结果容器中了。

代码:

class Solution {
public:
    vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {
        if(nums1.size() > nums2.size()){
            return intersect(nums2,nums1);
        }
        unordered_map<int, int>m;
        for(int num:nums1){
            ++m[num];
        }
        vector<int> v;
        for(int num:nums2){
            if(m.count(num)){
                v.push_back(num);
                --m[num];
                if(m[num] == 0) m.erase(num);
            }
        }return v;
    }
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

力扣:350.两个数组的交集 II 的相关文章

  • ARMV8体系结构简介:AArch64应用级体系结构之Atomicity

    1 前言 Atomicity是内存访问的一个属性 描述为原子性访问 包括single copy atomicity和multi copy atomicity 2 基本概念 observer 可以发起对memory read write访问的
  • 经典机器学习算法之SVM算法

    本篇文章旨在让完全不懂的小伙伴对该算法有一个初步认识与理解 只适用于小白 如果想深入了解 可以参考本文的参考文章 文章目录 一 算法介绍 1 SVM简介 2 支持向量 二 算法分析 1 线性可分情况 线性可分的理解 找到最优的超平面 2 线

随机推荐

  • 【第四阶段】kotlin语言中的数组类型

    1 kotlin语言中的数组类型 类型 定义 IntArray intArrayOf DoubleArray doubleArrayOf LongArray longArrayOf ShortArray shortArrayOf ByteA
  • 模拟实现内存动态分区分配与回收(完整代码)

    memory类 package memory import java util LinkedList import java util Scanner public class memory private int size 内存大小 pr
  • vscode开发python项目使用flake8、yapf工具格式化pip8编码规范

    前言 使用flake8 yapf工具工具去格式化py文件 有助于生成满足pep8规范 使用快捷键即可完成 提高开发效率 安装配置 1 win10下安装flake8 yapf pip install flake8 pip install ya
  • python 实现批量抠图

    系统 windows10 语言 python 3 6 编辑器 pycharm 安装库 1 paddlepaddle python m pip install paddlepaddle i https mirror baidu com pyp
  • ES Module 和 Commonjs 的区别

    只有静态引入 tree shaking才能够知道哪些引入哪些不引入 动态引入 要引入的代码都没有执行 所以不会引入 所以tree shaking不知道哪些引入哪些不引入
  • 只利用 phpstudy 如何运行PHP文件 超详细教程

    1 先编写好PHP代码 我这里用记事本简单写了一个 2 打开phpstudy 检查下有没有下载PHP环境 启动Apache 3 把编写好的PHP文件复制到phpstudy目录下的www文件中 注 phpstudy可以通过 网站 管理 打开根
  • Vue常见简写 “:“ , “@“ , “#“ :帮助刚入行的伙伴快速看懂代码

    提示 本文仅仅是对Vue中比较常见的简写进行总结 适合刚入行有时看不懂代码的朋友 目录 文章目录 前言 一 是什么 1 是什么意思 2 怎么使用 二 是什么 1 是什么意思 2 怎么使用 三 是什么 1 是什么意思 2 怎么使用 总结 前言
  • JDBC 学习笔记(基础)

    示意图 目录 创建 JDBC 应用 例子 通过本地协议纯 Java 驱动程序实现JDBC 代码具体步骤 1 注册驱动 2 建立与数据库的连接 3 获取执行SQL语句的对象 Statement 4 定义执行 SQL 语句 5 操作结果集对象
  • 100. Same Tree

    Definition for a binary tree node struct TreeNode int val TreeNode left TreeNode right TreeNode int x val x left NULL ri
  • 【Java】SpringBoot使用AOP进行日志解析打印+系统异常全局处理配置

    文章目录 前言 一 导入Lombok 二 创建日志打印Model 三 创建日志切面工具类 四 需要用到的一些常量类 五 创建接口请求切面 六 系统异常全局配置 总结 前言 为了方便项目部署在服务器之后 当出现BUG以及某些特殊需求时 会因为
  • Docker 笔记(全)

    1 关于Docker 1 1 概念 Docker 是一个开源的应用容器引擎 基于Go 语言 并遵从 Apache2 0 协议开源 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级 可移植的容器中 然后发布到任何流行的 Linu
  • 运算符之算术运算符、关系运算符、逻辑运算符、复合赋值运算符、其他运算符

    运算符是一种告诉编译器执行特定的数学或逻辑操作的符号 C 有丰富的内置运算符 分类如下 算术运算符 关系运算符 逻辑运算符 复合赋值运算符 位运算符 其他运算符 运算符优先级 由高到低 类别 运算符 结合性 后缀 gt 从左到右 一元 ty
  • python学得好 监狱进的早_蟒周刊-403-监狱中学 Python 改变人生

    200115 Zoom Quiet 大妈 用时 42 分钟 完成快译 200115 Zoom Quiet 大妈 用时 17 分钟 完成格式转抄 Ned was getting reports for a mysterious disk I
  • 铨顺宏RFID:应用超高频RFID技术智能档案管理系统

    根据超高频率RFID技术性智能化档案智能管理系统将改变这一现况 根据选用先 进的超高频率RFID自动检索技术应用和计算机系统技术性 以超高频率RFIDrfid标签做为信息储存媒体并黏贴在档案袋上 在超高频率RFID集成ic中储存该档案的基本
  • 看完这篇 教你玩转渗透测试靶机vulnhub——FunBox2(ROOKIE)

    Vulnhub靶机FunBox2 ROOKIE 渗透测试详解 Vulnhub靶机介绍 Vulnhub靶机下载 Vulnhub靶机安装 Vulnhub靶机漏洞详解 信息收集 FTP匿名访问 暴力破解 SSH私钥登入获取Shell Sudo提权
  • YOLO V4论文解读

    YOLO V4论文解读 一 YOLOV3回顾 二 YOLOV4中 三 Bag of freebies 数据扩充 模拟对象遮挡 结合多幅图像进行数据扩充 解决类别不平衡 label smoothing bbox Yolov4 use 四 Ba
  • java 字符串示例

    概述 最近项目上 需求 需要Android端在一段字符串分包处理 在此做个笔录 1 code public class Main public static void main String args System out println
  • mysql 1786_mysql错误:Statement violates GTID consistency

    在MYSQL中 执行建表语句时CREATE TABLE aaaa AS SELECT FROM menu 报 错误代码 1786 Statement violates GTID consistency CREATE TABLE SELECT
  • 训练loss不下降的原因总结

    表现 训练过程中loss值一直震荡 没有下降趋势 原因一 梯度消失 多因为网络深度过深 接近输入层的参数 梯度过小 解决方法 调整网络 激活函数relu batch normal 残差网络等 原因二 训练数据分布不均匀 这种情况对训练数据s
  • 力扣:350.两个数组的交集 II

    力扣 350 两个数组的交集 II 题目 给你两个整数数组 nums1 和 nums2 请你以数组形式返回两数组的交集 返回结果中每个元素出现的次数 应与元素在两个数组中都出现的次数一致 如果出现次数不一致 则考虑取较小值 可以不考虑输出结