Tencent 44-Gray code leetcode89
La codificación gris es un sistema de números binarios en el que dos valores consecutivos difieren solo en un dígito.
Dado un número entero no negativo n que representa el número total de dígitos en el código, imprima su secuencia de código gris. La secuencia de codificación de Gray debe comenzar con 0.
Ejemplo 1:
Entrada: 2
Salida: [ 0 , 1 , 3 , 2 ]
Explicación: 00-0 01-1 11-3 10-2
Para un n dado, su secuencia de codificación Gray no es única.
Por ejemplo, [0,2,3,1] también es una secuencia de codificación Gray válida.
00-0
10-2
.. 11-3
. 01-1
Ejemplo 2:
Entrada: 0
Salida: [0]
Explicación: Definimos que la secuencia de codificación Gray debe comenzar con 0.
Dada una secuencia de códigos Gray con un número total de códigos de n, su longitud es 2n. Cuando n = 0, la longitud es 20 = 1.
Por lo tanto, cuando n = 0, la secuencia de codificación de Gray es [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