未知の整数配列arrは、n個の非負の整数で構成されます。
エンコードされた後、長さn-1でエンコードされた別の整数配列になります。ここで、encoded [i] = arr [i] XOR arr [i +1]です。たとえば、arr = [1,0,2,1]は、encoded = [1,2,3]になるようにエンコードされます。
エンコードされた配列をエンコードし、元の配列arrの最初の要素(arr [0])を指定します。
元の配列arrにデコードして戻してください。答えが存在し、ユニークであることが証明できます。
2つの数値またはまたはおよび1つの数値または他の数値と等しい結果を使用できます。
class Solution {
public:
vector<int> decode(vector<int>& encoded, int first) {
vector<int> arr(encoded.size() + 1);
arr[0] = first;
int pre = first;
for (int i = 1; i < encoded.size() + 1; ++i) {
arr[i] = pre ^ encoded[i - 1];
pre = arr[i];
}
return arr;
}
};