#Leet Code# Gray Code

描述:

要求相邻数2进制差一位

先获得n-1的列表表示小于 2^(n-1) 的符合要求的列表,加上最高位的加成 2^(n-1) 就是大于等于 2^(n-1) 的符合要求的列表,后者翻转一下就能够与前者连接上了

代码:

 1 class Solution:
 2     # @return a list of integers
 3     def grayCode(self, n):
 4         if n == 0: return [0]
 5 
 6         s1 = self.grayCode(n - 1)
 7         s2 = [item + 2 ** (n - 1) for item in s1[::-1]]
 8         s1.extend(s2)
 9 
10         return s1

 

posted @ 2014-08-11 17:45  mess4u  阅读(159)  评论(0编辑  收藏  举报