给定一个数组,该数组内只有一个数只出现了奇数次,请找出这个数字(异或)
由异或关系可知,x^x=0,x^0=x ,并且异或满足交换律,因此这个特殊数组内所有的偶数次元素与自己异或都会为0,最后出现次数为奇数次的元素和0异或当然是本身了,这样便输出这个元素了。代码如下
public class Test {
public static void main(String[] args) {
int[] arr = {1,1,1,1,2,2,2,4,3,4,3};
int result = method(arr);
System.out.println(result);
}
private static int method(int[] arr) {
int result = arr[0];
for(int i=1;i<arr.length;i++){
result=result^arr[i];
}
return result;
}
}