給定一個數組,除了一個數出現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;
}