1.按位异或 XOR 运算符的使用
2.i++和++i的区别
i++是后缀自增运算符, 表示先取i的值进行表达式计算或函数调用,最后加法再计算 i=i+1;
++i是前缀自增运算符,表示先加法计算i=i+1,然后在进行表达式计算或函数调用。
参考知乎文章的理解:彻底搞懂i++和++i的区别,谁的效率更高? - 知乎 (zhihu.com)
方法一:遍历法
由于取值较小,遍历每个取值求解
1 <= n <= 1000
0 <= start <= 1000
n == nums.length
class Solution {
public:
int xorOperation(int n, int start) {
int ans = 0;
for(int i = 0; i < n; i++){
ans ^= (start + i * 2);
}
return ans;
}
};
方法二:数学推导法
详见题解