面试之路(2)-百度算法题
2016-04-16 23:09
337 查看
题目:
实现Swap(int a,int b)要求是不使用临时变量,可以使用四则运算和异或等运算
思路:
可以使用异或,如果如何int值和0异或等于自身,而且int值和自身异或结果是零,符合交换律加法的思路是也是一样,先加上后减去,也是等于自身
答案:
异或:(异或用^表示)swap(int a,int b){ a = a ^ b; b = a ^ b; a = a ^ b; }
加法
swap(int a,int b){ a = a + b; b = a - b; a = a - b; }
加法和乘法
swap(int a,int b){ a = (b) + (b = a)* 0; }
相关文章推荐
- 面试之路(2)-百度算法题
- 面试之路(1)-百度智力题
- 面试之路(1)-百度智力题
- 面试之路(1)-百度智力题
- 面试智力题小结
- 面试系列之二:C艹翻转双向链表
- 剑指offer之面试题8:旋转数组的最小数字
- 码农小汪-设计模式-迭代器模式
- lintcode之最长公共前缀
- 【笔试/面试】MFC(六)—— 菜单
- 一个大四求职菜鸟的web前端之路(终)
- 码农小汪-设计模式-模板方法
- 写了 35 年代码的老程序员的最大遗憾
- 码农小汪-设计模式-享元模式 FlyWeight
- 程序员的自我提升
- lintcode 之 最长公共子串
- 【笔试/面试】MFC(五)
- 码农小汪-设计模式之-命令模式
- 模拟面试感受之一
- 面试题87:玛瑙项链