格雷码是一种二进制编码系统,如果任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code)。
给定一个非负整数n,表示代码的位数,打印格雷码的序列。格雷码序列必须以0开头。
例如:给定n=2,返回[0,1,3,2]. 格雷码的序列为:
00 - 0 01 - 1 11 - 3 10 - 2注意:
- 对于一个给定的n,格雷码的序列不一定是唯一的,
- 例如:根据题目描述,[0,2,3,1]也是一个有效的格雷码序列
00 - 0 01 - 1 11 - 3 10 - 2注意:
2
[0,1,3,2]
class Solution: def grayCode(self , n ): array=[0] a=[] for i in range(1,n+1): a=reversed(array) a=list(a) for j in range(len(a)): a[j]+=2**(i-1) array+=a return array