题目
思路
本题很简单,根据异或运算的基本性质,a ^ a = 0
,则有a ^ b ^ b = a
。对于新数组encode
和原数组origin
,有encode[i] = origin[i] ^ origin[i+1]
, 因此encode[i] ^ origin[i] = origin[i + 1]
。
代码
class Solution {
public:
vector<int> decode(vector<int>& encoded, int first) {
vector<int> result;
int origin_cur = first;
result.push_back(first);
for(int n:encoded) {
origin_cur = origin_cur ^ n;
result.push_back(origin_cur);
}
return result;
}
};