直接求所有元素的异或和就行
大致代码:
s=0
for i=1 to n{
s = s xor a[i]
}
return s
(xor在c++里运算符是^)
原理说明:对于任何数x,0 xor x=x且x xor x=0
如果题目里说的重复指的是恰好出现两次,那么直接O(n)把数组里的元素都异或(xor)起来就行,得到的结果就是那个唯一的不重复的元素。