本题使用异或解决:
//int [] A=new int[]{1,2};
//A[0]=0001
//A[1]=0010
// 两个元素异或后为0011
// 然后0011再去与A[1]异或后得到 0001 =1=A[1]
// A[1]再与0011异或后得到 0010=2=A[0]
// 因为是无缓存交换 所以 就0011应为 A数组中任意一元素 在进行异或操作
import java.util.*;
public class Exchange {
public int[] exchangeAB(int[] AB)
{
AB[0]=AB[0]^AB[1]; /// 0001
AB[1]=AB[0]^AB[1]; /// 0010 ^0011
AB[0]=AB[0]^AB[1];
return AB;
// write code here
}
}