格雷编码
题目描述:
解题思路:
python3
- 第一种:位运算法。首先我们需要了解格雷编码是个什么东西:格雷编码(循环二进制单位距离码)是任意两个相邻数的代码只有一位二进制数不同的编码。
- 这道题我们可以通过二进制遍历,为了保证相邻的数的二进制编码不同的只有一个,我们通过位运算符
^
(异或),这个位运算符的详细解释可以看这篇教程:运算符,这里就不多说。我们通过自己和自己右一位进行异或运算,最后得出格雷编码。 - 时间复杂度:O(N)
class Solution:
def grayCode(self, n: int) -> List[int]:
result = []
for i in range(1 << n):
result.append(i ^ i >> 1)
return result