一个数组中有一种数出现了奇数次,其他数都出现了偶数次,怎么找到并打印这种数
这里我们可以用到异或运算
有这样一个结论
1.任何数异或0 都为自己本身
2.任何数和自己异或都为0
所以如果数组为[3,3,4,4,5,4,4,3,3,5,5]
我们可以看出5出现了奇数次
public static int getIntOdd(int[] arr){
int eor = 0;
for(int i=0;i<arr.length;i++){
eor^=arr[i];
}
return eor;
}
因为出现偶数次那么偶数次异或的结果为0
0异或奇数次剩下的值则为唯一的奇数