刷题碎碎念二:原地交换

正常交换的时候我们需要用一个临时存储tmp: tmp = a; a = b; b = tmp

怎么原地存储呢?很简单的想法就是用一个差: a = a - b; b = a + b; a = -( a - b )

如果用位运算呢

所以就变成了

a = a ^ b

b = a ^ b

a = b ^ a

利用xor的思路想就很简单很简单

但是本质就是个智力游戏,没有实际用途。。。还不如用一个tmp来的有可读性