href="http://ounix1xcw.bkt.clouddn.com/github.markdown.css" rel="stylesheet">
这是leetcode的第89题--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:0132 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. 思路 最开始想到暴力求解:即每次求下一个数,都是列出所有可能,然后找最小的。结果TLE. 后来发现,这个顺序很像卡诺图,然后就找到规律了
show me the code
class Solution: def grayCode(self, n): """ :type n: int :rtype: List[int] """ karnaugh=[0] for i in range(n): karnaugh =[j 2**i for j in karnaugh[::-1]] return karnaugh