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;
            }
                
        }
    };
     
  • 相关阅读:
    ubantu系统之jdk切换使用
    Asp.net core 学习笔记 2.1 升级到 2.2
    box-sizing 和 dom width
    Angular 学习笔记 (组件沟通的思考)
    Angular 学习笔记 (久久没有写 angular 常会忘记的小细节)
    Asp.net core 学习笔记 (AutoMapper)
    Angular 学习笔记 (Material Select and AutoComplete)
    Asp.net core (学习笔记 路由和语言 route & language)
    Asp.net core 学习笔记 (library)
    Angular 学习笔记 (Material Datepicker)
  • 原文地址:https://www.cnblogs.com/bxyan/p/6925780.html
Copyright © 2011-2022 走看看