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

    查找问题

    • 查找有无(只有键)
      • 元素'a'是否存在
      • set(集合)
    • 查找对应关系(键值对应)
      • 元素'a'出现了几次
      • map(字典)
    • set和map的底层实现是红黑树
    • 常见操作
      • insert()
      • find()
      • erase()
      • change(map):改变某个键对应的值

    要求

    • 给定两个数组nums,求两个数组的公共元素
    • 输出结果中每个元素唯一
    • 不考虑输出结果的顺序

    举例

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

    实现

    • 将公共元素放入公共的set中
     1 class Solution{
     2 public:
     3     vector<int> intersection(vector<int>& nums1, vector<int>& nums2){
     4         
     5         set<int> record;
     6         for(int i = 0 ; i < nums1.size() ; i ++ )
     7             record.insert( nums1[i] );
     8         
     9         set<int> resultSet;
    10         for( int i = 0 ; i < nums2.size() ; i ++ )
    11             if( record.find(nums2[i]) != record.end())
    12                 resultSet.insert(nums2[i]);
    13                 
    14         vector<int> resultVector;
    15         for( set<int>::iterator iter = resultSet.begin() ; iter != resultSet.end() ; iter ++)
    16             resultVector.push_back( *iter );
    17         
    18         return resultVector;
    19     }
    20 };
    View Code
    • 简单写法
     1 class Solution{
     2 public:
     3     vector<int> intersection(vector<int>& nums1, vector<int>& nums2){
     4         
     5         set<int> record( nums1.begin(), nums1.end());
     6         
     7         set<int> resultSet;
     8         for( int i = 0 ; i < nums2.size() ; i ++ )
     9             if( record.find(nums2[i]) != record.end())
    10                 resultSet.insert(nums2[i]);
    11                 
    12         return vector<int> resultVector(resultSet.begin(),resultSet.end());
    13         
    14     }
    15 };
    View Code

     参考

  • 相关阅读:
    215. 数组中的第K个最大元素
    c++集合的操作
    201. 数字范围按位与
    150. 逆波兰表达式求值
    二叉树的遍历算法
    144. 二叉树的前序遍历
    139. 单词拆分 DP
    131. 分割回文串
    695. 岛屿的最大面积 DFS
    leetcode 200. 岛屿数量 DFS
  • 原文地址:https://www.cnblogs.com/cxc1357/p/12596600.html
Copyright © 2011-2022 走看看