当前位置: 首页 > news >正文

两个数组的交集Ⅱ-力扣

  • 想到的解法是使用两个map来进行记录,mp1用来统计num1中每个元素出现的次数。
  • 当nums2的元素能够在mp1中查找到时,将这个元素添加到mp2,按照这个规则统计得到nums2和nums1重复的元素,mp2中的value记录了nums2中这个元素出现的次数
  • 最后我们只需要将两个map同一键值的value取最小值,并添加最小值个数个键值元素到返回数组即可
class Solution {
public:vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {vector<int> v;unordered_map<int, int> mp1;unordered_map<int, int> mp2;for(int i = 0; i < nums1.size(); i++){mp1[nums1[i]]++;}for(int j = 0; j < nums2.size(); j++){if(mp1.find(nums2[j]) != mp1.end()){mp2[nums2[j]]++;}}for(auto pair : mp2){int num = min(mp2[pair.first], mp1[pair.first]);for(int i = 0; i < num; i++){v.push_back(pair.first);}}return v;}
};

看了官方的题解,在插入到返回数组的处理更加简便,减少了for循环进行对比,在此之前没怎么用过**map.count()**这个函数。

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> intersection;for (int num : nums2) {if (m.count(num)) {intersection.push_back(num);--m[num];if (m[num] == 0) {m.erase(num);}}}return intersection;}
};作者:力扣官方题解
链接:https://leetcode.cn/problems/intersection-of-two-arrays-ii/solutions/327356/liang-ge-shu-zu-de-jiao-ji-ii-by-leetcode-solution/
来源:力扣(LeetCode)
http://www.lryc.cn/news/359723.html

相关文章:

  • 【TCP协议中104解析】wireshark抓取流量包工具,群殴协议解析基础
  • [个人笔记] 记录docker-compose使用和Harbor的部署过程
  • 详细介绍运算符重载函数,清晰明了
  • 国内外知名的低代码开发平台下载地址
  • 【Pr学习】01新建项目起步
  • 【Redis延迟队列】redis中的阻塞队列和延迟队列
  • el-tree常用操作
  • SQL 语言:存储过程和触发器
  • Ubuntu Linux 24.04 使用certbot生成ssl证书
  • Vivado 比特流编译时间获取以及FPGA电压温度获取(实用)
  • Window下VS2019编译WebRTC通关版
  • 【云原生 | 60】Docker中通过docker-compose部署kafka集群
  • allure测试报告用例数和 pytest执行用例数不相同问题
  • Ubuntu 离线安装 gcc、g++、make 等依赖包
  • Vxe UI vxe-upload 上传组件,显示进度条的方法
  • 探索API接口:技术深度解析与应用实践
  • ARM-V9 RME(Realm Management Extension)系统架构之系统安全能力的系统隔离属性
  • 一个班有n个学生,需要把每个学生的简单材料(姓名和学号)输入计算机保存。然后可以通过输入某一学生的姓名查找其有关资料。
  • python的range() 函数
  • ClickHouse数据管理与同步的关键技术
  • 【一竞技DOTA2】东南亚Bleed战队官宣Emo正式加盟
  • 算法学习笔记(7.3)-贪心算法(最大切分乘问题)
  • 大型企业用什么文件加密软件,五款适合企业的文件加密软件
  • 【数据结构】二叉树运用及相关例题
  • Java基础知识点(反射、注解、JDBC、TCP/UDP/URL)
  • postgressql——Tuple学习(2)
  • Linux日志管理
  • 【社区投稿】给 NdArray 装上 CUDA 的轮子
  • Linux|Linux常用命令合集(一)
  • RTPS协议之Behavior Module