LintCode 格雷編碼 Gray Code

2021-07-11 05:08:27 字數 600 閱讀 2589

格雷編碼是乙個二進位制數字系統,在該系統中,兩個連續的數值僅有乙個二進位制的差異。

給定乙個非負整數 n ,表示該**中所有二進位制的總數,請找出其格雷編碼順序。乙個格雷編碼順序必須以 0 開始,並覆蓋所有的 2n 個整數。

注意事項

對於給定的 n,其格雷編碼順序並不唯一。

根據以上定義, [0,2,3,1] 也是乙個有效的格雷編碼順序。

樣例 給定 n = 2, 返回 [0,1,3,2]。其格雷編碼順序為:

00 - 0

01 - 1

11 - 3

10 - 2

挑戰 o(2n) 時間複雜度。

參考:

public

class

solution

if(n == 1)

arraylistlist = graycode(n-1);

for(int i = 0; i < list.size(); i++)

for(int i = list.size()-1; i >= 0; i--)

return result;

}}

ps:**待優化,mark下

89 格雷編碼

格雷編碼是乙個二進位制數字系統,在該系統中,兩個連續的數值僅有乙個位數的差異。給定乙個代表編碼總位數的非負整數 n,列印其格雷編碼序列。格雷編碼序列必須以 0 開頭。示例 1 輸入 2 輸出 0,1,3,2 解釋 00 0 01 1 11 3 10 2 對於給定的 n,其格雷編碼序列並不唯一。例如,...

leetcode 格雷編碼

題目 格雷編碼是乙個二進位制數字系統,在該系統中,兩個連續的數值僅有乙個位數的差異。給定乙個代表編碼總位數的非負整數 n,列印其格雷編碼序列。格雷編碼序列必須以 0 開頭。輸入 2 輸出 0,1,3,2 解釋 00 0 01 1 11 3 10 2 對於給定的 n,其格雷編碼序列並不唯一。例如,0,...

89 格雷編碼

格雷編碼是乙個二進位制數字系統,在該系統中,兩個連續的數值僅有乙個位數的差異。給定乙個代表編碼總位數的非負整數 n,列印其格雷編碼序列。格雷編碼序列必須以 0 開頭。示例 1 輸入 2 輸出 0,1,3,2 解釋 00 0 01 1 11 3 10 2 對於給定的 n,其格雷編碼序列並不唯一。例如,...