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;
            }
                
        }
    };
     
  • 相关阅读:
    (转)样本方差的期望
    (转)Python 字典排序
    曝光补偿
    python判断字符串是否包含子字符串
    python requests接口测试 -----博客园串接口
    jmeter+ant+jenkins 搭建接口自动化测试
    TOMCAT闪退。cmd执行startup.bat保错:the CATALINA_HOME environment variable is not defined correctly
    selenium python自动化测试 ddt数据驱动
    jenkins到底如何拉取代码 如何部署的
    git 常用命令
  • 原文地址:https://www.cnblogs.com/bxyan/p/6925780.html
Copyright © 2011-2022 走看看