LeetCode1720。XORをデコードした後の配列

未知の整数配列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;
    }
};

おすすめ

転載: blog.csdn.net/tus00000/article/details/112481124