所有元素都是成对的,只有一个元素是单一的,求问如何在O(N)的复杂度里面找出这个元素
方法很简单,如果你能够想到异或就可以了,异或会把两个相同的数给抵消掉
我实现的源码如下:
#include <iostream>
using namespace std;
int singleNumber(int A[],int n){
int ans = 0;
for(int i=0;i<n;i++){
ans^=A[i];
}
return ans;
}
int main(){
int A[100],int n;
cin>>n;
for(int i=0;i<n;i++){
cin>>A[i];
}
cout<<singleNumber(A,n);、
return 0;
}