博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java面试题(一)
阅读量:6655 次
发布时间:2019-06-25

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

1、java算法,对两个整数变量的值进行互换(不需要第三方变量)

1.1、借助中间变量(常用)

int x = 10;int y = 20;---int z = x; x = y; y = z;

此种方法可以将中间量看成空杯,即把temp看成是空杯, 

把x看成是装有白酒的杯子,把y看成是装有红酒的杯子 

int temp = x; 把白酒倒到空杯中,此时temp装有白酒,x变成空杯 

x = y; 把y中的红酒倒到x空杯中,此时x装有红酒,y变成空杯 
y = temp; 把白酒倒到y空杯中,此时x装有红酒,y装有白酒,实现x和y的互换 

1.2、位移运算

int x = 10;int y = 20;x = x ^ y;y = X ^ y;x = x ^ y;

此种方法运用这种原理:一个数对另一个数位异或两次,该数不变

x = x ^ y;  此时x的值为x ^ y;

y = x ^ y;  此时的x经上面的运算变成x ^ y,所以y =  x ^ y ^ y = x;
x = x ^ y;  此时的y经上面的运算变成 x,所以x =  x ^ y ^ x = y; 实现两个数的互换 

1.3、数值想加减

int x = 10;int y = 20;x = x+y;y = x-y;x = x-y;

此种方法通过先求得两数的和再进行减运算 

x = x + y; 此时x的值为10+20=30; 

y = x - y; 此时的x经上面的运算变成30,所以y = 30 - 20 = 10; 
x = x - y; 此时的y经上面的运算变成10,所以x = 30 - 10 = 20; 实现两个数的互换

转载于:https://www.cnblogs.com/willem-xin/articles/10594143.html

你可能感兴趣的文章
mysql 创建函数This function has none of DETERMINISTIC, NO SQL, or READS
查看>>
java中POJO类和DTO类都要实现序列化
查看>>
asp 支付宝 企业版 接口 支持网银接口 ,网银直接支付
查看>>
引用rtmp编译报错:rtmp.obj : error LNK2001: 无法解析的外部符号 __imp__timeGetTime@0
查看>>
Maven--要点笔记
查看>>
是什么让C#成为最值得学习的编程语言
查看>>
curl: (6) Couldn’t resolve host ‘www.ttlsa.com’【转】
查看>>
【C/C++】:用C实现输出日期的阴历日子
查看>>
jquery版本号升级不兼容的问题:$("input").attr("value")功能发生改变...
查看>>
基于ASP.NET WebAPI OWIN实现Self-Host项目实战
查看>>
linux下xargs和管道的区别
查看>>
FPGA开发流程1(详述每一环节的物理含义和实现目标)
查看>>
oc83--自定义类实现copy方法
查看>>
【Eclipse】Eclipse中修改项目的映射名称与端口
查看>>
Mongoose 利用实现HTTP服务
查看>>
Python pycharm 常用快捷键
查看>>
[LeetCode] Path Sum IV 二叉树的路径和之四
查看>>
oracle定时任务
查看>>
Cocos Creator 计时器的延时循环试用方法
查看>>
HAProxy+Redis实现负载负载均衡(待实践)
查看>>