給定一個數組,除了一個數出現1次之外,其餘數都出現3次。找出出現一次的數。
如:{1, 2, 1, 2, 1, 2, 7}, 找出7.
格式:
第一行輸入一個數n,代表數組的長度,接下來一行輸入數組A[n],(輸入的數組必須滿足問題描述的要求),最後輸出只出現一次的數。
要求:
你的算法只能是線性時間的複雜度,並且不能使用額外的空間哦~
樣例1
輸入:
4 0 0 0 5
輸出:
5
# include <iostream>
# include <vector>
using namespace std;
int searchOne(vector<int> ivec,int n)
{
for(vector<int>::size_type i=0;i<n;i++)
{
int count=0;
for(vector<int>::size_type j=0;j<n;j++)
if(ivec[i] == ivec[j])
count++;
if(count==1)
{
return ivec[i];
break;
}
}
}
int main()
{
int n,n2,m,num;
vector<int> ivec;
cin >>n;
n2=n;
while(n>0)
{
cin >>m;
ivec.push_back(m);
n--;
}
num = searchOne(ivec,n2);
cout << num <<endl;
return 0;
}