编写一个函数,不用临时变量,直接交换numbers = [a, b]中a与b的值。
示例:
输入: numbers = [1,2]
输出: [2,1]
提示:
numbers.length == 2
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/swap-numbers-lcci
一开始把两数之和存到一个元素中,然后分别做差。但是运行错误溢出了。
后来看题解,又是利用了异或运算。
class Solution {
public:
vector<int> swapNumbers(vector<int>& numbers) {
numbers[0]=numbers[0]^numbers[1];
numbers[1] = numbers[0]^numbers[1];
numbers[0] = numbers[0]^numbers[1];
return numbers;
}
};