关闭

面试题 :实现两个整数变量的交换

标签: java-整数交换
859人阅读 评论(0) 收藏 举报
分类:

面试题 :实现两个整数变量的交换

本帖子总结了四种整数变量的交换方式:

  • 方式一:开发中常用的,使用中间变量

  • 方式二:不使用中间变量的,“和”实现

  • 方式三:面试中使用的,按位亦或 “^”

  • *方式四:一句话实现交换


方式一:开发中常用的,使用中间变量

* 代码块 *

 public class SwapDemo{
    public static  void main(String[] args) {
        int i = 10;
        int j = 20;

        int temp;
        temp = i;  //i = 10; j = 20; temp = 10;
        i = j;     //i = 20; j = 20; temp = 10;
        j = temp;  //i = 20; j = 10; temp = 10;

        System.out.println("i=" + i + ";j=" + j);
        // "i=20;j=10"
    }
}

方式二:不使用中间变量的,“和”实现

* 代码块 *

public class SwapDemo{
    public static  void main(String[] args) {
        int i = 10;
        int j = 20;

        i = i + j;   //i = 30; j = 20;
        j = i - j;   //i = 30; j = 10;
        i = i - j;   //i = 20; j = 10;

        System.out.println("i=" + i + ";j=" + j);
        // "i=20;j=10"
    }
}

方式三:面试中使用的,按位亦或 “^”

  • “^”的特点:某一数据对另一个数据”^”两次,该数本身不变
  • 面试题也可能描述为:请使用最高效的方法实现两个整数的值交换

* 代码块 *

public class SwapDemo{
    public static  void main(String[] args) {
        int i = 10;
        int j = 20;

        i = i ^ j;
        j = i ^ j;
        i = i ^ j;

        System.out.println("i=" + i + ";j=" + j);
        // "i=20;j=10"
    }
}

*方式四:一句话实现交换

* 代码块 *

  • * 了解即可,装逼必会 *
public class SwapDemo{
    public static  void main(String[] args) {
        int i = 10;
        int j = 20;

        j = ( i + j ) - ( i = j );

        System.out.println("i=" + i + ";j=" + j);
        // "i=20;j=10"
    }
}

0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3720次
    • 积分:154
    • 等级:
    • 排名:千里之外
    • 原创:12篇
    • 转载:1篇
    • 译文:0篇
    • 评论:1条
    学习历程

    Rupeng.com


    2015-07-05启航

    文章分类
    最新评论