例子:
numbers[0] = 3 3的二进制就是00000011
numbers[1] = 4 4的二进制就是00000100
异或就是相同为0 , 不同为1
1.
numbers[0] = numbers[0] ^ numbers[1];
00000011
^ 00000100
00000111 转换成二进制就是7
所以numbers[0]就等于7
2.
numbers[1] = numbers[0] ^ numbers[1];
00000111
^ 00000100
00000011 转换成二进制就是3
所以numbers[1]就等于3
3.
numbers[0] = numbers[0] ^ numbers[1];00000111
^ 00000011
00000100 转换成二进制就是4
所以numbers[0]就等于4
那么至此,就完成了两个数的交换
class Solution {
public int[] swapNumbers(int[] numbers) {
// 1.
numbers[0] = numbers[0] ^ numbers[1];
// 2.
numbers[1] = numbers[0] ^ numbers[1];
// 3.
numbers[0] = numbers[0] ^ numbers[1];
return numbers;
}
}