其他分享
首页 > 其他分享> > 每日一题leetcode89.格雷编码

每日一题leetcode89.格雷编码

作者:互联网

题目:
n 位格雷码序列 是一个由 2^n 个整数组成的序列,其中:

解答:
方法一:官方解答

class Solution:
    def grayCode(self, n: int) -> List[int]:
        ans = [0]
        for i in range(1, n + 1):
            for j in range(len(ans) - 1, -1, -1):
                ans.append(ans[j] | (1 << (i - 1)))
        return ans

方法二:个人解答

ans为n=0时的结果

class Solution:
    def grayCode(self, n: int) -> List[int]:
        ans = [0]
        for i in range(1, n + 1):
            #对数组进行反转,再加上2^(i-1)
            for j in range(len(ans) - 1, -1, -1):
                ans.append(ans[j]+ 2**(i - 1))
        return ans

ans为n=1时的结果

class Solution:
    def grayCode(self, n: int) -> List[int]:
        ans = [0,1]
        for i in range(2, n + 1):
            #对数组进行反转,再加上2^(i-1)
            for j in range(len(ans) - 1, -1, -1):
                ans.append(ans[j]+ 2**(i - 1))
        return ans

标签:格雷,grayCode,leetcode89,int,整数,range,ans,一题,append
来源: https://blog.csdn.net/jqq125/article/details/122381318