php算法求教,求解数组中只出现一次的数。

比如有个数组
$arr=array(1,1,2,2,3,3,4,5,5,6,6...);
有限个数字,每个数字都出现了两次,只有4这个数字只出现了一次,
求大神能不能用PHP的函数或者方法来帮我找出这个只出现一次的数。
谢谢~!

用二进制的&运算,两个相同的数相与为0。

申明一个足够大的byte型数组;
把数作为下标
如:
$barr[$arr[$i]] == 0代表第一次出现,这时候置1;
$barr[$arr[$i]] == 1代表已经出现一次,这时候置2;
最后循环
$barr[$j] == 1代表$j这个数就出现了一次;

如果有帮助,希望结帖

使用亦或(xor)运算符进行操作。

这是常见的算法题,使用亦或位运算遍历一次数组,最终的结果即是要求的数。