LeetCode筆記 89格雷編碼

2021-09-30 16:28:02 字數 1080 閱讀 7736

題目:

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

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

示例 1:

輸入: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

示例 2:

輸入:0輸出:[0]解釋:我們定義格雷編碼序列必須以 0 開頭。給定編碼總位數為n 的格雷編碼序列,其長度為 2n當 n = 0 時,長度為 20 = 1。

因此,當 n = 0 時,其格雷編碼序列為 [0]。

思路:

以下是leetcode中執行最快的**。以下程式中使用了幾位運算子。右移運算子》,將數字的二進位制數向右移動指定位數,低位捨棄,高位正數補0,負數補1;還有乙個按位異或符號^,將兩個數寫成二進位制的形式,對於每一位上的數,不同的為1,相同的為0.我剛開始就是這個符號弄不清,還以為是指數一類的符號。。。這段**的思路就是先右移一位再和i按位異或。應該是**最簡單的。

其他的**我看了下還挺複雜的,有點看不懂。。。。

**:

class solution 

return list;

}

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,其格雷編碼序列並不唯一。例如,...

leetcode 89 格雷編碼

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