zoukankan      html  css  js  c++  java
  • [刷题] 350 Intersection of Two Arrays

    要求

    • 给定两个数组nums,求两个数组交集
    • 输出结果与元素在两个数组中出现的次数一致
    • 不考虑输出结果的顺序

    举例

    • nums1=[1,2,2,1]
    • nums2=[2,2]
    • 结果:[2,2]

    思路

    • 使用map,记录nums1中元素及其出现次数
    • 遍历nums2,将重复元素放入结果,同时将该元素出现次数减1

    实现

     1 class Solution{
     2 public:
     3     vector<int> intersect(vector<int>& nums1, vector<int>& nums2){
     4         map<int,int> record;
     5         for( int i = 0 ; i < nums1.size() ; i ++ )
     6             record[nums1[i]] ++;
     7             
     8         vector<int> resultVector;
     9         for( int i = 0 ; i < nums2.size() ; i ++ )
    10             if( record[nums2[i]] > 0 ){
    11                 resultVector.push_back( nums2[i] );
    12                 record[nums2[i]]--;    
    13             }
    14         return resultVector;
    15     }
    16 };
    View Code
  • 相关阅读:
    C++ 日期 & 时间
    C++ 引用
    C++ 指针
    C++ 字符串
    C++ 数组
    C++ 数字
    C++ 函数
    C++ 判断
    C++ 循环
    C++ 运算符
  • 原文地址:https://www.cnblogs.com/cxc1357/p/12596835.html
Copyright © 2011-2022 走看看