问题描述
简要思路
经推导可知,对于a^b=c,可得,a^c=b,b^c=a,故只要一个for循环,将每个encoded中的数字与arr中当前数字异或,即可得到下一位。
代码
class Solution {
public:
vector<int> decode(vector<int>& encoded, int first) {
int n = encoded.size();
vector<int> arr(n+1);
arr[0] = first;
for(int i=0; i<n; i++){
arr[i+1] = encoded[i]^arr[i];
}
return arr;
}
};