首页 > 编程语言 > 详细

349-两个数组的交集

时间:2019-10-09 19:08:53      阅读:94      评论:0      收藏:0      [点我收藏+]
  • 用到STL中的set关联式容器

1、注意事项

set容器中元素都是排好顺序的!!

set容器中无重复元素!!

set中查找采用二分查找,查找速率是logn

set中元素操作只需改变指针指向

2、常用命令

set<int>s;

s.find(elem);返回指定元素的位置,如果没找到指定元素则返回s.end()

s.begin();s.end();迭代器的起始位置

s.empty();判断是否为空

3、思路

  • 设置两个迭代器,把第一个数组的元素全放进第一个set容器中(可剔除重复元素)
  • 迭代查找第二个数组中的元素,看是否在第一个set容器中找到,找到了放在第二个set容器中,也可以剔除重复元素
  • 把第二个set容器转化为vector,然后输出!

4、代码实现

 1 class Solution {
 2 public:
 3     vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
 4         set<int>s1;
 5         set<int>s2;
 6         vector<int>rec;
 7         for(int i=0;i<nums1.size();i++){
 8             s1.insert(nums1[i]);
 9         }
10         for(int i=0;i<nums2.size();i++){
11             if(s1.find(nums2[i])!=s1.end()) s2.insert(nums2[i]);
12         }
13         rec.assign(s2.begin(), s2.end());//是把set转化为vector的语句!!!
14         return rec;
15     }
16 };

 

349-两个数组的交集

原文:https://www.cnblogs.com/hehesunshine/p/11643367.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!