public class AppearOneTime {
/**
* 一个数组中其他数字都出现了两次,只有一个数字只出现了一次
*/
public static int appearOneTime(int[] arr) {
int result = 0;
for(int i = 0; i < arr.length; i++){
result = result^arr[i];
}
return result;
}
public static void main(String[] args){
int[] arr = {11,11,45,35,35};
int res = appearOneTime(arr);
System.out.print(res);
}
}
异或是位运算,这里是int型,就是32位进行异或操作,对于异或位运算而言,相同为0,不同为1,
那么对于int型而言就是a^0 = a a^a = 0,而且还满足结合律。