落单的数
题目
给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。
样例
给出 [1,2,2,1,3,4,3],返回 4
挑战
一次遍历,常数级的额外空间复杂度
题解
异或操作满足交换律和结合律。
public class Solution {
/**
*@param A : an integer array
*return : a integer
*/
public int singleNumber(int[] A) {
if (A.length == 0)
{
return 0;
}
int n = A[0];
for(int i = 1; i < A.length; i++)
{
n = n ^ A[i];
}
return n;
}
}
Last Update 2016.8.31