0
点赞
收藏
分享

微信扫一扫

89. 格雷编码

潇湘落木life 2022-01-08 阅读 22
leetcode

题目

  1. 格雷编码

题目大意

请添加图片描述

样例

请添加图片描述

数据规模

请添加图片描述

思路

通过题意可以知道格雷码的定义,而通过资料可以想到最简单的构造方法:

请添加图片描述

那么一开始就先存储(0,1)(这是n=1的情况),接下来每次将之前的所有格雷码倒序加到数组末尾并且叠加上 2 k − 1 ( k 表 示 当 前 第 几 位 ) 2^{k-1}(k表示当前第几位) 2k1(k) ,这样做n-1轮就是最终要的格雷码。

代码

class Solution {
public:
    vector<int> grayCode(int n) {
        vector<int>ans;
        ans.push_back(0);
        ans.push_back(1);
        int t=1;
        for(int i=2;i<=n;i++){
            int tot=ans.size();
            t*=2;
            for(int j=tot-1;j>=0;j--){
                ans.push_back(t+ans[j]);
            }
        }
        return ans;
    }
};
举报

相关推荐

0 条评论