您的位置:首页 > 其它

计蒜客 15 map遍历

2015-07-03 16:14 232 查看
#include<iostream>
#include<cstdio>
#include<map>
#include<algorithm>
using namespace std;
int main()
{
    map<int,int>q;
    int n,x;
	scanf("%d",&n);
    while(n--)
    {
        scanf("%d",&x);
       if(q.count(x)) 
           q[x]++;
        else
            q[x]=1;
    }
    map<int ,int >::iterator it;
    for(it=q.begin();it!=q.end();++it)
    {
        if(it->second==1)
        {
            cout<<it->first;
        }
    }
    return 0;
}
这一题由于没有给出n的数据范围,可能会很大。那么数组开太大就会爆。所以这里用STL的map模板最合适,刚好学习一下map的遍历知识


2201次 20.2% 1000ms 10000K

给定一个数组,除了一个数出现1次之外,其余数都出现3次。找出出现一次的数。

如:{1, 2, 1, 2, 1, 2, 7}, 找出7.

格式:

第一行输入一个数n,代表数组的长度,接下来一行输入数组A
,(输入的数组必须满足问题描述的要求),最后输出只出现一次的数。

要求:

你的算法只能是线性时间的复杂度,并且不能使用额外的空间哦~

样例1

输入:

4

0 0 0 5

输出:

5
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: