关键是如何找到原数组的第一个或者最后一个数字。
class Solution {
public:
vector<int> decode(vector<int>& encoded) {
int n = encoded.size() + 1;
int s1 = 0;
for(int i = 0; i < n - 1; i += 2) {
s1 ^= encoded[i];
}
int s2 = 0;
for(int i = 1; i <= n; i++) {
s2 ^= i;
}
vector<int> ans(n);
ans[n - 1] = s1^s2;
for(int i = n - 2; i >= 0; i--) {
ans[i] = ans[i+1] ^ encoded[i];
}
return ans;
}
};