原题链接
交换 a,b两个数,不开辟额外控件
解析: 设a=甲 b=乙
a=a^b; 转换 a=甲^乙 b=乙
b=a^b; 转换 b=甲^乙^乙 因为 乙^乙=0 甲^0=甲 ,所以b=甲
a=a^b; 转换 a=甲^乙^甲 同上所述,所以 a=乙
至此交换完毕
原理 N^0=N N^N=0;
class Solution {
public:vector<int> swapNumbers(vector<int>& numbers) {numbers[0]=numbers[0]^numbers[1];numbers[1]=numbers[0]^numbers[1];numbers[0]=numbers[0]^numbers[1];return numbers;}};