首页 > 其他 > 详细

1041. Be Unique (20)

时间:2018-03-06 16:34:51      阅读:202      评论:0      收藏:0      [点我收藏+]

 

(1)思路

用map创建一个hash表,遍历一遍数据将key和对应的value填入

注意第一次没有找到时,是设置为1,m[temp]=1不是零

顺便把各个值压入vector中,这一步是因为map插入后是根据key值排序了的,所以要记录顺序

最后再遍历一遍数组一旦找到value为1的值就退出循环并打印,若没有找到就打印None

 

这里用到了map容器

可以用count()方法和find()方法分别找是否有某一个key值

map也可以通过迭代器迭代

#include <cstdio>
#include <map>
#include <vector>
using namespace std;

int main() {
  int n;
  scanf("%d",&n);
  map<int,int> m;
  vector<int> v;
  for(int i=0;i<n;i++) {
    int temp;
    scanf("%d",&temp);
    v.push_back(temp);
    if(m.find(temp) == m.end()) {
      m[temp]=1;
    } else {
      m[temp]++;
    }
  }
  int win=0;
  for(int i=0;i<n;i++) {
    if(m[v[i]] == 1){
      win=v[i];
      break;
    }
  }
  win==0? printf("None"):printf("%d",win);
  return 0;
}

当然这里不用map用两个数组也可以实现

 

技术分享图片

 

1041. Be Unique (20)

原文:https://www.cnblogs.com/tclan126/p/8514560.html

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