2015年秋季腾讯校园招聘开发岗笔试题 四道大题之一

来源:互联网 发布:mac上好用的tex编辑器 编辑:程序博客网 时间:2024/05/16 05:17

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

这是一道leetcode的原题https://leetcode.com/problems/gray-code/,关于二进制数i对应的格雷码j有如下关系j=i^(i>>1);

比较简单,非递归代码如下:

    vector<int> grayCode(int n) {        vector<int> v;        int num=1;        for(int x=0;x<n;x++)            num*=2;        for(int i=0;i<num;i++)            v.push_back(i^(i>>1));                return v;    }
递归代码:
    vector<int> grayCode(int n) {        vector<int> v;        if(n==0)            v.push_back(0);        else if(n==1)        {            v.push_back(0);            v.push_back(1);        }        else        {            v=grayCode(n-1);            int x=v.size();            for(int i=x;i<2*x;++i)                v.push_back(i^(i>>1));        }        return v;    }



0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 怀孕五周孕酮低怎么办 怀孕38天孕酮低怎么办 刚怀孕了孕酮低怎么办 怀孕2个月孕酮低怎么办 怀孕七周孕酮低怎么办 孕前检查孕酮低怎么办 甘油三酯偏高7.2怎么办 入职体检来例假怎么办 6激素检查喝水了怎么办 抽血前吃了东西怎么办 怀孕一个月孕酮低怎么办 怀孕了老是有痰怎么办 孕妇有很多白痰怎么办 血糖高怎么办吃什么好 5年糖尿病血糖高怎么办 血糖高引起的视力模糊怎么办 谷丙转氨酶和谷草转氨酶高怎么办 产检血糖有点高怎么办 孕期餐后血糖高怎么办 怀孕12周血糖高怎么办 怀孕2个月血糖高怎么办 怀孕7个月血糖高怎么办 孕妇7个月血糖高怎么办 空腹血糖6%2e7怎么办 血糖和尿酸都高怎么办 血糖高的孕妇便秘怎么办 血糖低怎么办吃什么好 孕检空腹血糖高怎么办 怀孕4个月血糖高怎么办 怀孕3个月血糖高怎么办 怀孕6个月血糖高怎么办 孕29周血糖高怎么办 餐后血糖偶尔高怎么办 歺后血糖9.8高怎么办 怀孕5个月血糖高怎么办 歺后2小时血糖高怎么办 怀孕餐后血糖高怎么办 老人餐后血糖高怎么办 血糖高尿糖不高怎么办 小孩鼻子不通气怎么办特效方法 婴儿20天不大便怎么办