第一种方法,用哈希表。
map<int, int>ary;
for (int i = 0; i < n; i++)
{
if (ary.find(A[i]) == ary.end())
ary.insert(pair<int, int>(A[i], i));
else
ary.erase(A[i]);
}
map<int, int>::iterator it = ary.begin();
return it->first;
第二种方法,逐位异或。
int result = A[0];
if (n != 1)
for (int i = 1; i < n; i++)
result = result ^ A[i];
return result;
逐位异或可以明显提高执行效率。