给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。
给出 [1,2,2,1,3,4,3],返回 4
代码如下
public int singleNumber(int[] A) {
// Write your code here
Arrays.sort(A);
int b=0,k=0;
if(A.length==0){
b=0;
}else{
for(int i=0;i<A.length-1;i+=2){
if(A[i]!=A[i+1]){
b=A[i];
k=1;
break;
}
}
if(b==0&&k==0){
b=A[A.length-1];
}
}
return b;
}
这里先将数组排序一下将会非常好做。只需比较数组下标的奇数和偶数是否相等即可。
注意如果是数组最后一个时要特殊对待