1734 解碼異或後的排列

2022-09-14 21:27:25 字數 742 閱讀 4643

思路:

利用異或規律的一道題。

首先明確題目對perm的定義,前n個正整數的排列,n為奇數。(因為沒重視這句,想了好久都想不出,看了討論裡面說到這個才恍然大悟)

意思為perm為乙個陣列,裡面放的是數字1-n,且數量為奇數。

又因為encoded[i]=perm[i-1]^perm[i]

我們舉個n=5的例子

encoded[0]=perm[0]^perm[1]

encoded[1]=perm[1]^perm[2]

encoded[2]=perm[2]^perm[3]

encoded[3]=perm[3]^perm[4]

易發現對於 encoded[1] xor encoded[3] 我們有perm[1]perm[2]perm[3]^perm[4]

根據異或的性質 m xor n = a 有 a xor m/n = n/m

那麼 對數字 1-5 異或,那麼我們就得到 pe = perm[0]perm[1]perm[2]perm[3]perm[4]

所以我們只要將pe 和encoded裡面奇數下標的元素相與就能得到perm[0],那麼根據上面異或性質和encoded和perm的關係,就能不斷得到perm的元素。

**:

class solution 

for(int i=1;ires.push_back(pe);

for(int i=0;ireturn res;

}};

1734 解碼異或後的排列

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

1734 解碼異或後的排列

1734.解碼異或後的排列 注意審題,注意審題,注意審題。難度中等 給你乙個整數陣列perm,它是前n個正整數的排列,且n是個 奇數 它被加密成另乙個長度為n 1的整數陣列encoded,滿足encoded i perm i xor perm i 1 比方說,如果perm 1,3,2 那麼encod...

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...