【qscoj】喵哈哈村的嘟嘟熊魔法(2)

来源:互联网 发布:java寻路算法 编辑:程序博客网 时间:2024/05/08 04:54

描述
百度是喵哈哈村的赞助商,所以百度派出了嘟嘟熊给大家展现魔法:

“恨不得挂长绳于青天,柔此西飞之白日”。

只见刹那间,嘟嘟熊就从兜里面掏出了一堆数字,这一堆数字仿佛有了生命,不停的在空气中跃动。

嘟嘟熊作为魔法大师!他想提问,这些数字中,有很多数都出现了恰好三次,仅仅只有一个数出现了一次,请你快速找出这个只出现一次的数!

输入
本题包含若干组测试数组。
每组测试数据:
第一行一个n,表示有n个数。
第二行n个整数a[i]。

满足:1<=n<=100000,且满足里面仅仅有一个数出现一次,而其他数都恰好出现三次,0<=a[i]<=100000。

输出
输出仅仅输出答案即可,不需要空格 。

样例输入1
7
2 3 2 2 1 1 1
1
5

样例输出1
3
5

A :

#include<bits/stdc++.h>using namespace std;const int maxn = 100005;int a[maxn], num[maxn];int main() {    int n;    while (cin>>n) {        memset(num, 0 , sizeof(num));   // 每组数据初始化        for (int i = 0; i < n; ++i) {            cin >> a[i];            ++num[a[i]];        }        for (int i = 0; i < n; ++i) {            if (num[a[i]] == 1) cout<<a[i]<<endl;        }    }    return 0;}

O(1)空间复杂度,O(n)时间复杂度的做法 : 构造一个函数f(x)^3=1

0 0