幸福犀牛

文章
4
资源
0
加入时间
2年10月20天

经典算法题1:找出数组中只出现一次的数字,其它数字都出现了两次

题目: 一个整型数组里除了一个数字之外,其它的数字都出现了两次。请写程序找出这个只出现一次的数字。要求: 要求时间复杂度是 O(n) ,空间复杂度是 O(1) 。题解其它数字都出现了两次,只有一个数出现了一次。可以想到运用异或运算,任何一个数字异或它自己都等于0。样例:2 3 4 2 3所有数字依次异或运算:2 xor 3 xor 4 xor 2 xor 3 = (2 xor 2) xor (3 xor 3) xor 4= 0 xor 0 xor 4 = 4最终结果4就是我们要找的那个