查找问题

两类查找问题

查找有无

  • 元素value是否存在 set集合
  • 只存储key, key 不允许重复

查找对应关系

  • 元素value 出现了几次 map字典
  • 通常通过key-value表示,一个key出现了多少次

set 和map

  • 通常语言的标准库中都内置set和map,被称为容器类
  • 容器类:用来存储一组具有相同类型的数据,而不同的容器针对的数据会有不同的处理操作。
  • 屏幕实现细节

常见操作

  • insert
  • find
  • erase
  • change(map)

例题使用

set的例子

给定两个数组nums,求两个数组的公共元素
input :nums1=[1,2,2,1] ,nums2 = [2,2]
output: [2]
limit:结果中的每一个元素只能出现一次

分析:由于每一个元素只能出现一次,出现的顺序是任意的,因此可以用set的集合来做

leetcode 349:

vector<int> intersection(vector<int>& nums1, vector<int>& nums2)
{
  set<int> record;
  for(int i = 0; i <nums.size(); i++)
  {
      record.insert(nums1[i]);
  }
//set<int>record(nums1.begin(),nums1.end());
   set<int> resultSets;
  for(int i = 0; i < record.size(); i++)
  {
     if(record.find(nums2[i]) != record.end())
     {
        resultSets.insert(nums2[i]);   
     }
  }

  vector<int> resultsVector;
  for(set<int>::iterator iter =resultsSet.begin(); iter!= results.end(); iter++ )
  {
     resultsVector.push_back(*iter);
  }


  return resultVecor;
//return vector<int>(resultSet.begin(),resultSet.end());

}

总结
* set集合中通常用来存放key,而且出现次数只有一次
* set通常也用来表示查找元素
* 存储集合到set—在set中去查找—-查找的元素可以放在set中

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值