LeetCode----Gray Code

来源:互联网 发布:python 接口测试框架 编辑:程序博客网 时间:2024/04/28 13:36

Gray Code

The gray code is a binary numeral system where two successive values differ in only one bit.

Given a non-negative integer n representing the total number of bits in the code, print the sequence of gray code. A gray code sequence must begin with 0.

For example, given n = 2, return [0,1,3,2]. Its gray code sequence is:

00 - 001 - 111 - 310 - 2

Note:
For a given n, a gray code sequence is not uniquely defined.

For example, [0,2,3,1] is also a valid gray code sequence according to the above definition.

For now, the judge is able to judge based on one instance of gray code sequence. Sorry about that.


分析:

按照题目的要求生成格雷码。一开始并没有理解格雷码的规律,百度后,使用异或方式可以直接将二进制转换成对应的格雷码。


代码:

class Solution(object):    def grayCode(self, n):        """        :type n: int        :rtype: List[int]        """        if not n:            return [0]        res = []        for a in range(2 << (n - 1)):            res.append(a ^ (a >> 1))        return res

0 0
原创粉丝点击