给定一个数组,除了一个数出现1次之外,其余数都出现3次。找出出现一次的数。
如:{1, 2, 1, 2, 1, 2, 7}, 找出7.格式:
第一行输入一个数n,代表数组的长度,接下来一行输入数组A[n],(输入的数组必须满足问题描述的要求),最后输出只出现一次的数。
要求:
你的算法只能是线性时间的复杂度,并且不能使用额外的空间哦~
样例1
输入:
4
0 0 0 5
输出:
5
#include<stdio.h>
int calcCount(int n,int a[])
{
int i,j;
int count = 0;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(a[i] == a[j])
count++;
}
if(count == 1)
{
return a[i];
}
count = 0;
}
return 0;
}
int main(int argc, char **argv) {
int i,n;
int a[10000];
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
int ans = calcCount(n,a);
printf("%d\n",ans);
return 0;
}