1041. Be Unique (20)
Posted lan126
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1041. Be Unique (20)相关的知识,希望对你有一定的参考价值。
距离PAT考试还有12天最重要的是做透每一题
(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)的主要内容,如果未能解决你的问题,请参考以下文章
PAT甲级1041 Be Unique (20 分)(多重集)