Tencent 44-Grayコードleetcode89
グレイコーディングは、2つの連続する値が1桁だけ異なる2進数システムです。
コードの総桁数を表す負でない整数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]です。
class Solution:
##没什么好讲的,格雷码数学上有公式,gray(i)=i xor i/2
def grayCode(self, n: int) -> List[int]:
res=[]
for i in range(1<<n):
res.append(i ^ (i>>1))
return res