编写一个函数,不用临时变量,直接交换 numbers = [a, b]ab 的值。

示例:

1
2
输入: numbers = [1,2]
输出: [2,1]

提示:

  • numbers.length == 2
个人解答
1
2
3
4
5
6
7
8
9
10
11
/**
* @param {number[]} numbers
* @return {number[]}
*/
// 做减法
var swapNumbers = function(numbers) {
numbers[1] = numbers[0] - numbers[1];
numbers[0] = numbers[0] - numbers[1];
numbers[1] = numbers[0] + numbers[1];
return numbers
};
解题思路

使用减法思路。

以 a、b 为例:a = 1; b = 2

第一遍:b(临时) = a - b;
第二遍:a = a - b(临时); // 得出 a = 原b;
第三遍:b = a(原b) + b(临时:原a - 原b); // 得出 b = 原a;