1720 解碼異或後的陣列(模擬)

2021-10-17 08:54:49 字數 1177 閱讀 8169

1. 問題描述:

未知整數陣列 arr 由 n 個非負整數組成。經編碼後變為長度為 n - 1 的另乙個整數陣列 encoded ,其中 encoded[i] = arr[i] xor arr[i + 1] 。例如,arr = [1,0,2,1] 經編碼後得到 encoded = [1,2,3] 。給你編碼後的陣列 encoded 和原陣列 arr 的第乙個元素 first(arr[0])。請解碼返回原陣列 arr 。可以證明答案存在並且是唯一的。

示例 1:

輸入:encoded = [1,2,3], first = 1

輸出:[1,0,2,1]

解釋:若 arr = [1,0,2,1] ,那麼 first = 1 且 encoded = [1 xor 0, 0 xor 2, 2 xor 1] = [1,2,3]

示例 2:

輸入:encoded = [6,2,7,3], first = 4

輸出:[4,2,0,7,4]

2 <= n <= 104

encoded.length == n - 1

0 <= encoded[i] <= 105

0 <= first <= 105

2. 思路分析:

分析題目可以知道我們模擬整個過程即可,舉出幾個實際一點的例子可以發現a ^ b = c,已知其中的兩個數那麼就可以求解出第三個數字,對已知的兩個數字進行異或就可以得出第三個數字,所以使用迴圈即可得出對應的答案

3. **如下:

from typing import list

class solution:

def decode(self, encoded: list[int], first: int) -> list[int]:

res = list()

second = encoded[0] ^ first

# extend方法可以新增往列表末尾新增多個元素

res.extend([first, second])

for i in range(1, len(encoded)):

# res[-1]表示res列表的最後乙個元素值

return res

1720 解碼異或後的陣列

題目描述 未知 整數陣列 arr 由 n 個非負整數組成。經編碼後變為長度為 n 1 的另乙個整數陣列 encoded 其中 encoded i arr i xor arr i 1 例如,arr 1,0,2,1 經編碼後得到 encoded 1,2,3 給你編碼後的陣列 encoded 和原陣列 a...

2021 02 03 1720 解碼異或後的陣列

1720.解碼異或後的陣列 未知 整數陣列 arr 由 n 個非負整數組成。經編碼後變為長度為 n 1 的另乙個整數陣列 encoded 其中 encoded i arr i xor arr i 1 例如,arr 1,0,2,1 經編碼後得到 encoded 1,2,3 給你編碼後的陣列 encod...

1734 解碼異或後的排列

題目描述 給你乙個整數陣列 perm 它是前 n 個正整數的排列,且 n 是個 奇數 它被加密成另乙個長度為 n 1 的整數陣列 encoded 滿足 encoded i perm i xor perm i 1 比方說,如果 perm 1,3,2 那麼 encoded 2,1 給你 encoded ...