博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
另一道看上去很吓人的面试题:如何交换a和b两个整数的值,不用额外空间 (Rev. 2)
阅读量:4188 次
发布时间:2019-05-26

本文共 337 字,大约阅读时间需要 1 分钟。

 
这个题貌似完全颠覆一般的Logic:交换两个整数需要一个额外的空间用于保存:
t = b;
b = a;
a  = t;
粗看上去似乎没有办法,但是仔细想一下,既然不能用额外的空间,那么能用的方法就只有数学方法,也许有效,那么第一个想法就是用A+b看看,稍微想一下就可以得到下面这个解法:
 a = a + b;
 b = a - b;
 a = a - b;
还有更绝的(由DxZ网友提供):
a = a ^ b;
b = a ^ b;
a = a ^ b;
其实很多这样的题目并不难,只是需要一点点的Think outside the box :)
 

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1589626

你可能感兴趣的文章
Windows:Apache与Tomcat集群调优
查看>>
Apache+2Tomcat 集群及调优
查看>>
通向架构师的道路(第三天)之apache性能调优
查看>>
Tomcat性能调优
查看>>
Tomcat集群
查看>>
quartz在集群环境下的最终解决方案
查看>>
ERwin Data Modeler 建模实践
查看>>
网站架构收集(I)(转)
查看>>
JFreeChart教程 -- 入门
查看>>
JFreeChart各种图形的制作
查看>>
JFreeChart 应用全过程
查看>>
Spring 架构
查看>>
给你感情保鲜
查看>>
ORCALE 优化常青树
查看>>
Java获得CPU序列号和网卡Mac地址
查看>>
Visual Studio 2005的JIT Debugger在Vista上面无法正常工作
查看>>
我的MSDN Blog正式开张,欢迎大家访问 [ http://blogs.msdn.com/yizhang/ ]
查看>>
ACM UVa算法题209 Triangular Vertices的解法
查看>>
另一道看上去很吓人的面试题:如何交换a和b两个整数的值,不用额外空间 (Rev. 2)
查看>>
一道看上去很吓人的算法面试题:如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)
查看>>