zoukankan      html  css  js  c++  java
  • [腾讯]生成格雷码

    时间限制:3秒 空间限制:32768K 热度指数:24655
    本题知识点: 递归

    题目描述

    在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同, 则称这种编码为格雷码(Gray Code),请编写一个函数,使用递归的方法生成N位的格雷码。

    给定一个整数n,请返回n位的格雷码,顺序为从0开始。

    测试样例:
    1
    返回:["0","1"]

    思路:

    class GrayCode {
    public:
        vector<string> getGray(int n) {
            // write code here
            vector<string> gray;  
            if(n==1)
                {
                   gray.push_back("0");
                   gray.push_back("1");
                
               return gray;
            }
            else{
                    vector<string> gray1;
                    gray1=getGray(n-1);
                    
                    int graySize=gray1.size();
                    vector<string> gray2;
                    
                    for(int i=0;i<graySize;i++)
                        {
                            if(i%2==0)
                                {
                                   gray2.push_back(gray1[i]+"0");
                                   gray2.push_back(gray1[i]+"1");
                            }
                        else{
                              gray2.push_back(gray1[i]+"1");
                              gray2.push_back(gray1[i]+"0");
                        }
                    }
                return gray2;
            }
                
        }
    };
     
  • 相关阅读:
    [CLRS][CH 19]斐波那契堆
    [CLRS][CH 20] van Emde Boas 树
    [C++11] lambda函数
    常用网站整理
    词法分析原理 Lexical Analysis
    ie8开发人员工具无法使用,按f12任务栏里出现任务,但是窗体不弹出
    IE6下zindex犯癫不起作用bug的初步研究(转)
    ie8无法浏览png格式图片
    jquery.pngFix在最新的jquery1.7上无效的问题解决方法!
    用clearfix:after消除(DIV块因内部浮动而高度收缩的问题)(转)
  • 原文地址:https://www.cnblogs.com/bxyan/p/6925780.html
Copyright © 2011-2022 走看看