diff options
Diffstat (limited to 'decode_xor_array.cpp')
-rw-r--r-- | decode_xor_array.cpp | 35 |
1 files changed, 0 insertions, 35 deletions
diff --git a/decode_xor_array.cpp b/decode_xor_array.cpp deleted file mode 100644 index 7ee4139..0000000 --- a/decode_xor_array.cpp +++ /dev/null @@ -1,35 +0,0 @@ -// 720. Decode XORed Array -#include "leetcode.h" - -/* - * there is a hidden integer array 'arr' that consists of 'n' non-negative - * integers. it was encoded into another integer array 'encoded' of length 'n - - * 1' such that 'encoded[i] = arr[i] ^ arr[i + 1]'. for example, if 'arr = - * [1,0,2,1]', then 'encoded = [1,2,3]'. you are given the 'encoded' array. you - * are also given an integer 'first', that is the first element of 'arr'. ie. of - * 'arr[0]'. return the original array 'arr'. it can be proved that the answer - * exists and is unique. - */ - -class Solution { -public: - vector<int> decode(vector<int> encoded, int first) { - for (int &i : encoded) { - swap(i, first); - first ^= i; - } - encoded.push_back(first); - return encoded; - } -}; - -int main() { - Solution obj; - vector<int> e1 = {1, 2, 3}, e2 = {6, 2, 7, 3}; - for (auto i : obj.decode(e1, 1)) - printf("%d ", i); // expect: 1 0 2 1 - printf("\n"); - for (auto i : obj.decode(e2, 4)) - printf("%d ", i); // expect: 4 2 0 7 4 - printf("\n"); -} |