描述 给出 2 * n + 1个数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。 n≤100 样例样例 1: 输入:[1,1,2,2,3,4,4] 输出:3 解释: 仅3出现一次 样例 2: 输入:[0,0,1] 输出:1 解释: 仅1出现一次
Java代码如下:
public class Solution {
/**
* @param A: An integer array
* @return: An integer
*/
public int singleNumber(int[] A) {
// write your code here
if(A.length == 0){
return 0;
}
int a=0;
for (int i=0;i<A.length;i++){
a^=A[i];
}
return a;
}
}
解释 因为有2n+1个数所以数的个数为奇数个,利用^=运算符则可找出目标数字。 关于^=的解释我在博客里找到了如下两篇 链接如下:https://yq.aliyun.com/articles/58335 https://blog.csdn.net/grey_mouse/article/details/82991053 如有更好解决方法,烦请告知。可评论下方,供大家讨论。