栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【LeetCode】Day33-格雷编码-位运算

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【LeetCode】Day33-格雷编码-位运算

89.格雷编码

n 位格雷码序列 是一个由 2n 个整数组成的序列,其中:
        每个整数都在范围 [0, 2n - 1] 内(含 0 和 2n - 1)
        第一个整数是 0
        一个整数在序列中出现 不超过一次
        每对 相邻 整数的二进制表示 恰好一位不同 ,且第一个 和 最后一个 整数的二进制表示 恰好一位不同
给你一个整数 n ,返回任一有效的 n 位格雷码序列 。

python位运算符:链接

本题解释见:leetcode官方 

解答:

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


class Solution:
    def grayCode(self, n: int) -> List[int]:
        ans = [0] * (1 << n)
        for i in range(1 << n):
            ans[i] = (i >> 1) ^ i
        return ans

复杂度:

时间复杂度:O(2^n);

空间复杂度:O(1)。注意返回值不计入空间复杂度。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/701369.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号