无缓存交换_牛客网

题目:无缓存交换
请编写一个函数,函数内不使用任何临时变量,直接交换两个数的值。给定一个int数组AB,其第零个元素和第一个元素为待交换的值,请返回交换后的数组。

测试样例:
[1,2]
返回:
[2,1]

分析:若不使用任何临时变量,可采用异或的方式实现。

源代码:

import java.util.*;
public class Exchange {
    public int[] exchangeAB(int[] AB) {
        /*
        若有a,b两个数,则通过以下过程实现交换:
        a=a^b;
        b=a^b=a^b^b=a^0=a;
        a=a^b=a^b^a=b^0=b;
         */
        AB[0]=AB[0]^AB[1];
        AB[1]=AB[0]^AB[1];
        AB[0]=AB[0]^AB[1];
        return AB;
    }
}
发布了71 篇原创文章 · 获赞 2 · 访问量 7480

猜你喜欢

转载自blog.csdn.net/weixin_42512675/article/details/103153725