因为不能使用中间变量,具体思路如下 思路1,我们可以使用最简单的加减来实现 在本题中,是交换数组中的两个元素 代码如下: class Exchange { public int[] exchangeAB(int[] AB) {//不使用中间变量交换数组中的两个值 AB[0] += AB[1]; AB[1] = AB[0] - AB[1]; AB[0] = AB[0] - AB[1]; return AB; } } 但是该方法存在数据溢出的可能 思路2 我们采用异或来实现 代码如下: class Exchange2 { public int[] exchangeAB(int[] AB) {//不使用中间变量交换数组中的两个值 AB[0]^= AB[1]; AB[1] = AB[0]^AB[1]; AB[0]^= AB[1]; return AB; } }
在不设置其他变量的情况下,实现两个元素的交换
最新推荐文章于 2022-11-18 15:43:17 发布