define(格雷編碼):必須以0開始,且任意兩個連續的數值對應二進位制形式中僅有乙個位上的取值不同。n 表示總位數,所有n位的格雷編碼,其長度為2^n
思想:
n = 0的解
0n = 1的解
0—新增部分
1n = 2 的解
0001
—新增部分
1110
n = 3 的解
000 - 0
001 - 1
011- 3
010 - 2
------------- 下面的是新增的
110 - 2+4(加的這個4,不就等於2^(3-1)也就是1<<(n-1))
111 - 3+4
101 - 1+4
100 - 0+4
這樣我們就可以發現這麼乙個規律,基於n-1的情況,推出n的情況,首先,將n-1的情況照搬過來,然後倒敘將n=-1時的每個格雷碼+1<<(n-1),然後再將完成+1<<(n-1)操作的格雷碼給新增到結果集裡就可以了
時間複雜度o(n^2),空間複雜度o(1),返回結果的那個list不算在空間複雜度中
class solution
}return res;
}}
89 格雷編碼
格雷編碼是乙個二進位制數字系統,在該系統中,兩個連續的數值僅有乙個位數的差異。給定乙個代表編碼總位數的非負整數 n,列印其格雷編碼序列。格雷編碼序列必須以 0 開頭。示例 1 輸入 2 輸出 0,1,3,2 解釋 00 0 01 1 11 3 10 2 對於給定的 n,其格雷編碼序列並不唯一。例如,...
89 格雷編碼
格雷編碼是乙個二進位制數字系統,在該系統中,兩個連續的數值僅有乙個位數的差異。給定乙個代表編碼總位數的非負整數 n,列印其格雷編碼序列。格雷編碼序列必須以 0 開頭。示例 1 輸入 2 輸出 0,1,3,2 解釋 00 0 01 1 11 3 10 2 對於給定的 n,其格雷編碼序列並不唯一。例如,...
89 格雷編碼
題目描述 格雷編碼是乙個二進位制數字系統,在該系統中,兩個連續的數值僅有乙個位數的差異。給定乙個代表編碼總位數的非負整數 n,列印其格雷編碼序列。即使有多個不同答案,你也只需要返回其中一種。格雷編碼序列必須以 0 開頭。示例 1 輸入 2 輸出 0,1,3,2 解釋 00 0 01 1 11 3 1...