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;
            }
                
        }
    };
     
  • 相关阅读:
    理解离散傅立叶变换(一. 傅立叶变换的由来)
    编写你自己的单点登录(SSO)服务
    GitHub具体教程
    DropdownList绑定的两种方法
    命令拷屏之系统性能监测
    java实现第六届蓝桥杯生成回文数
    java实现第六届蓝桥杯生成回文数
    java实现第六届蓝桥杯生成回文数
    java实现第六届蓝桥杯生成回文数
    java实现第六届蓝桥杯机器人数目
  • 原文地址:https://www.cnblogs.com/bxyan/p/6925780.html
Copyright © 2011-2022 走看看