题目意思为找出数组中唯一一个出现1次的元素,且该数组中其他元素均出现2次。
此处需要运用异或的性质,巧妙地进行解题:
异或性质:
a ^ 0 = a
a ^ a = 0
a ^ b ^ c = a ^ c ^ b
所以可以推出:a ^ b ^ a = a ^ a ^ b = 0 ^ b = b
所以对数组中所有的元素进行异或处理,出现偶数次的元素会被消去,结合题意,可知最后得到的结果为唯一一个出现1次的元素
附上关键代码:
elem = 0;
for(int i=0; i<n; i++)
{
elem = elem ^ array[i];
}
return elem;
本文介绍了一种高效算法,通过使用异或操作来找出数组中仅出现一次的元素,而其他元素均出现两次。文章解释了异或运算的基本性质,并提供了一个简洁的代码示例。
727

被折叠的 条评论
为什么被折叠?



