算法分享第3题

2017-12-18  本文已影响0人  DevWang
题目:给定两个整数a和b,交换这两个数字,要求不引入第三个变量
如:定义a=1、b=2 交换后 a=2、b=1




















思路:

方法一:使用加减法实现

// A+B可能会越界 - 不推荐此方法,只领悟其思路
public void swap() {
    int a = 1;
    int b = 2;
    a = a + b;
    b = a - b;
    a = a - b;
}

方法二:使用位 异或运算 来实现

// 只能算是奇技淫巧,对速度的提升无帮助,可参考其他文章的解释,这里不过多阐述
public void swap() {
    int a = 1;
    int b = 2;
    a = a ^ b;
    b = a ^ b;
    a = a ^ b;
}
上一篇 下一篇

猜你喜欢

热点阅读