前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >打卡群刷题总结0730——格雷编码

打卡群刷题总结0730——格雷编码

作者头像
木又AI帮
发布2020-08-04 17:10:43
3140
发布2020-08-04 17:10:43
举报
文章被收录于专栏:木又AI帮木又AI帮

题目:89. 格雷编码

链接:https://leetcode-cn.com/problems/gray-code

格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。 给定一个代表编码总位数的非负整数 n,打印其格雷编码序列。即使有多个不同答案,你也只需要返回其中一种。 格雷编码序列必须以 0 开头。 示例 1: 输入: 2 输出: [0,1,3,2] 解释: 00 - 0 01 - 1 11 - 3 10 - 2 对于给定的 n,其格雷编码序列并不唯一。 例如,[0,2,3,1] 也是一个有效的格雷编码序列。 00 - 0 10 - 2 11 - 3 01 - 1 示例 2: 输入: 0 输出: [0] 解释: 我们定义格雷编码序列必须以 0 开头。 给定编码总位数为 n 的格雷编码序列,其长度为 2n。当 n = 0 时,长度为 20 = 1。 因此,当 n = 0 时,其格雷编码序列为 [0]。

解题:

1、每次新增的数num2[j] = 2^(i-1) + num[-j-1],其中,i为二进制数字的位数,j为数组的第几个数。

代码:

代码语言:javascript
复制
class Solution(object):
    def grayCode(self, n):
        """
        :type n: int
        :rtype: List[int]
        """
        res = [0]
        add = 1
        for i in range(n):
            res_len = len(res)
            add = 2 ** i
            for j in range(res_len):
                res.append(add + res[res_len - j - 1])
        return res

PS:刷了打卡群的题,再刷另一道题,并且总结,确实耗费很多时间。如果时间不够,以后的更新会总结打卡群的题。

PPS:还是得日更呀,总结一下总是好的。

【leetcode刷题】20T45-格雷编码

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 木又AI帮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 链接:https://leetcode-cn.com/problems/gray-code
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档