程序员面试宝典:
a、b交换中如果选用
temp=a;
a=b;
b=temp;
的话多申请了内存。
第二种方法
a=a+b;
b=a-b;
a=a-b;
这种方法中a+b可能会面临越界的风险。
所以最好的方法是:
a=a^b
b=a^b
a=a^b
用异或运算进行交换。
本文探讨了程序员面试中常见的变量交换问题,对比了传统方法与异或运算的优劣。传统方法如使用临时变量或多步算术操作存在额外开销或潜在溢出风险,而异或运算提供了一种既节省资源又避免边界问题的有效解决方案。
程序员面试宝典:
a、b交换中如果选用
temp=a;
a=b;
b=temp;
的话多申请了内存。
第二种方法
a=a+b;
b=a-b;
a=a-b;
这种方法中a+b可能会面临越界的风险。
所以最好的方法是:
a=a^b
b=a^b
a=a^b
用异或运算进行交换。

被折叠的 条评论
为什么被折叠?