一个数组 2n+1 个整数 ,两两相同 ,只有一个是和其他都不同的 ,问这个数是什么
(要求 o(n)时间复杂度,o(1)空间复杂度)
1。最傻的方法还是排序。。。。 连续查找
2。其实利用异或操作 : A xor B = 0 ; A xor B xor A = A xor A xor B = B
则这个数就是
result=0;
for(x : x[])
result = result xor x ;
return result;
haha , IQ , IQ !
本文介绍了一种在O(n)时间复杂度和O(1)空间复杂度下找到数组中唯一不同整数的方法。该方法利用异或操作的特性,通过遍历数组并对每个元素进行异或操作来实现。
一个数组 2n+1 个整数 ,两两相同 ,只有一个是和其他都不同的 ,问这个数是什么
(要求 o(n)时间复杂度,o(1)空间复杂度)
1。最傻的方法还是排序。。。。 连续查找
2。其实利用异或操作 : A xor B = 0 ; A xor B xor A = A xor A xor B = B
则这个数就是
result=0;
for(x : x[])
result = result xor x ;
return result;
haha , IQ , IQ !
879

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