0
点赞
收藏
分享

微信扫一扫

两数交换常见实现方式

ZGtheGreat 2022-04-21 阅读 66
算法java

场景

在做一些算法题的时候,我们经常需要对数组中的两个数进行交换。如一下两个变量

int a=1;
int b=2;

我们希望交换后的结果为

a=2;
b=1;

以下列举了几种比较常见的使用方式,

交换方式

方式一(使用中间变量)

int temp = a;
a=b;
b=temp;

方式二(使用加法)

 a=a+b;
 b = a-b;
 a=a-b;

方式三(使用异或)

异或是两个数进行按位异或,不同为1,相同为0;

a=a^b;
 b =a^b;
  a=a^b;

异或和加法的使用限制

在leetcode上有这样一道题
在这里插入图片描述
在这里使用异或或者加法的时候会有问题

在这里插入图片描述

使用临时变量则不会有问题。
在这里插入图片描述
处错原因是对数组的同一个位置进行了操作。

举报

相关推荐

0 条评论