一个整数数组 a由 n (n<=10000)个正整数组成,将其编码规则后,生成为长度为 n - 1 的另一个整数数组 encoded ,其中 encoded[i] = a[i] XOR a[i + 1] (XOR为二进制异或运算,见下面说明)。例如,a = [1,0,2,1] 经编码后得到 encoded = [1,2,3] 。
现给你编码后的数组 encoded 和以及原数组 a 的第一个元素 first(即a[0])。请解码返回原数组 a。(可以证明答案存在并且是唯一的)。
异或运算是二进制的位运算,C++中^运算表示的是二进制的异或运算,
位上相同为0 1^1=0 0^0=0 相异为 0^1=1
二进制:010^100=110