小米oj #2 找出单独出现的数字
描述
给出N个数字。其中仅有一个数字出现过一次,其他数字均出现过两次,找出这个出现且只出现过一次的数字。要求时间和空间复杂度最小。
输入多个数字,每个数字以空格分开。数字数量 N < 20,输入数字的最大值小于 256.
输出内容为只出现过唯一一次的数字
输入样例
10 10 11 12 12 11 16
输出样例
16
循环判断每个数字出现的次数,时间复杂度O(n^2).
#include <bits/stdc++.h>
using namespace std;
int main()
{
// please write your code here
int a[20];
int k = 0;
while(cin>>a[k])
{
k++;
}
for(int i = 0; i < k; i++)
{
int temp = 0;
for(int j = 0; j < k; j++)
{
if(a[i] == a[j])
{
temp++;
}
}
if(temp <= 1)
{
cout << a[i];
break;
}
}
return 0;
}