Number Swapper:不使用额外的变量,交换两个整数的值。
有两种方法,一种利用差值,一种利用异或。使用异或时,经常会写成a ^= b ^= a ^= b,这种方式违背了C语言的表达式求值原则,不具备可移植性,详见C语言的求值序列点。
class Solution {
public:
vector<int> swapNumbers(vector<int>& numbers) {
numbers[0] = numbers[0] - numbers[1];
numbers[1] += numbers[0];
numbers[0] = numbers[1] - numbers[0];
return numbers;
}
};
class Solution {
public:
vector<int> swapNumbers(vector<int>& numbers) {
numbers[0] ^= numbers[1];
numbers[1] ^= numbers[0];
numbers[0] ^= numbers[1];
return numbers;
}
};
727

被折叠的 条评论
为什么被折叠?



