首页 > 其他分享 >2956. 找到两个数组中的公共元素

2956. 找到两个数组中的公共元素

时间:2024-07-16 23:09:28浏览次数:15  
标签:int res ans2 ans1 ++ vector 数组 公共 2956

思路:用两个map分别存储两个列表内容,然后再对照即可

class Solution {
public:
    vector<int> findIntersectionValues(vector<int>& nums1, vector<int>& nums2) {
        unordered_map<int, int> mp1;
        unordered_map<int, int> mp2;
        int ans1 = 0, ans2 = 0;
        for (int i : nums1) {
            mp1[i]++;
        }
        for (int j : nums2) {
            mp2[j]++;
        }
        for (int i : nums1) {
            if (mp2[i]) {
                ans1++;
            }
        }
        for (int i : nums2) {
            if (mp1[i]) {
                ans2++;
            }
        }
        vector<int> res;
        res.push_back(ans1);
        res.push_back(ans2);
        return res;
    }
};

优化:初始化用集合set并且直接放入即可

标签:int,res,ans2,ans1,++,vector,数组,公共,2956
From: https://www.cnblogs.com/mysteryily/p/18306307

相关文章

  • 算法入门-数组2
    第一部分:数组26.删除有序数组中的重复项(简单)题目:给你一个非严格递增排列的数组nums,请你 原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度。元素的相对顺序应该保持一致。然后返回nums中唯一元素的个数。考虑nums的唯一元素的数量为k,你......
  • C++(函数参数为数组与指针算术)
    目录1.函数参数为数组2.指针算术2.1arr是指向第一个元素的地址2.2arr[i]表示什么?#include<iostream>voidprintArray(intarr[],intsize){for(inti=0;i<size;++i){std::cout<<arr[i]<<"";}}intmain(){intarr[5]......
  • 二维数组转一维数组
    创建一个数组vararr=[['a','b','c'],['d','e','f'],[1,2,3,'a','f']] 二维数组转一维数组functionArrayFn(arr){varbrr=[]for(vari=0;i<arr.length;......
  • 数组005 二维数组
    1#include<iostream>2usingnamespacestd;34//二维数组作为函数的参数5//注意此时的长度,是有多少行,也就是最外层有多少个6voiderweishuzu(int(*p)[4],intlen)7{8for(inti=0;i<len;i++)9for(intii=0;ii<4;ii++)10......
  • 类模板案例——数组类封装(vector<>的逻辑代码)
    .hpp文件#pragma#include<iostream>usingnamespacestd;template<classT>classMy_arry{public: My_arry(intcapacity)//赋初值 { this->m_capacity=capacity;//容量 this->m_Arry_size=0;//大小 this->m_Arry_Addres=newT[capacity];......
  • 代码随想录算法训练营第23天 | 669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树
    代码随想录算法训练营第22天|669.修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树修剪二叉搜索树:https://leetcode.cn/problems/trim-a-binary-search-tree/description/代码随想录:https://programmercarl.com/0669.修剪二叉搜索树.html#......
  • 声明一个数组为什么需要花费大量时间?
    声明一个数组需要花费大量时间,主要原因有以下几点:内存申请:创建数组时,需要申请一块连续的内存空间。如果系统内存不足或者剩余的内存不连续,可能会导致创建失败。此外,对于大数组,存储需求呈指数级增长,例如一个四维字符数组需要2,160字节的内存,而存储双精度浮点数则需要17,280字......
  • 树上问题/简单算法 LCA【最近公共祖先】
    概念引入最近公共祖先简称\(LCA\)(LowestCommonAncestor)。两个节点的最近公共祖先,就是这两个点的公共祖先里面,离根最远的那个。在下面的说明中,我们设两个节点分别为\(x\),\(y\),节点\(x\),\(y\)的深度分别表示为\(dep_x\),\(dep_y\),将树称为\(T\)算法详解:朴素算法:......
  • php函数入门学习(数组常见函数2 & 文件基础读写)
    //1、写一个函数,传入数组,返回数组中元素为数字且大于10的新结果数组functiongetNumArr($arr){  if(!$arr)return'请传入数组';  $arr2=array_filter($arr,function($v){    //echogettype($v)."<br>";    returngettype($v)==='inte......
  • 最爽手撕算法个人笔记【第一周-数组】
    27.移除元素给你一个数组nums和一个值val,你需要原地移除所有数值等于val的元素。元素的顺序可能发生改变。然后返回nums中与val不同的元素的数量。假设nums中不等于val的元素数量为k,要通过此题,您需要执行以下操作:更改nums数组,使nums的前k个元素包含不......