1.两数交换(仅限两数内存位置不同情况)
swap(int a,int b){
a = a^b;
b = a^b;
a = a^b;
}
2.寻找某个数出现奇数次(一个数)
public static void findOddOne(int[] arr){
int eoe = 0;
for(int i = 0;i < arr.length; i++){
eor ^= arr[i];
}
System.out.println(eor);
}
寻找某两个出现奇数次(两个数)
public static void printOddTwo(int[] arr){
int eor = 0;
int onlyOne = 0;
for(int i=0;i<arr.length;i++){
eor ^=arr[i];
}
int rightOne = eor&(~eor+1);
for(int i = 0;i<arr.length;i++){
if(rightOne & arr[i] == 0){
onlyOne ^ = arr[i];
}
}
System.out.println(onlyOne,eor^onlyOne);
}