leetcode 格雷編碼

2021-09-27 13:43:00 字數 841 閱讀 5702

題目:

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

給定乙個代表編碼總位數的非負整數 n,列印其格雷編碼序列。格雷編碼序列必須以 0 開頭。

輸入: 2

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

解釋:00 - 0

01 - 1

11 - 3

10 - 2

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

例如,[0,2,3,1] 也是乙個有效的格雷編碼序列。

00 - 0

10 - 2

11 - 3

01 - 1

思路:剛開始,我沒啥思路,於是看答案,那一刻我沒想到,

n = 3 的解

000 - 0

010 - 2

011 - 3

001 - 1  

------------- 下面的是新增的

100 - 4

110 - 6

111 - 7

101 - 5  

當n=3時;就是n=2的顛倒,然後在原來的基礎上+1<<(n-1);也就是10+100(1<<(1));從而變成110;依次類推:

code:

class solution ;

if(n==1) return vector;

int num=pow(2,n);

vectorres(num,0);

int size=0;

int index=0;

for(int i=1;i<=n;++i)

}return res;

}};

回溯 leetcode 格雷編碼

格雷編碼是乙個二進位制數字系統,在該系統中,兩個連續的數值僅有乙個位數的差異。給定乙個代表編碼總位數的非負整數 n,列印其格雷編碼序列。即使有多個不同答案,你也只需要返回其中一種。格雷編碼序列必須以 0 開頭。示例 1 輸入 2 輸出 0,1,3,2 解釋 00 0 01 1 11 3 10 2 對...

Leetcode 89 格雷編碼

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

LeetCode89 格雷編碼

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