筆試刷題-騰訊2018-08-18

題目描述:

/**
在一組數(shù)的編碼中,若任意兩個相鄰的代碼只有一位二進(jìn)制數(shù)不同,
則稱這種編碼為格雷碼(Gray Code),請編寫一個函數(shù),使用遞歸的方法生成N位的格雷碼。
給定一個整數(shù)n,請返回n位的格雷碼,順序為從0開始。
測試樣例:
1
返回:["0","1"]
*/

思路如下:

用遞歸思想找規(guī)律即可
f(n-1)表示n-1個的序列
產(chǎn)生f(n)
先順序遍歷f(n-1)在頭部加0
再倒序遍歷f(n-1)在頭部加1

代碼如下:

class GrayCode {
public:
    vector<string> getGray(int n) {
        // write code here
        vector<string> res;
        if(n==1){
            res.push_back("0");
            res.push_back("1");
            return res;
        }
        else{
            vector<string> preRes=getGray(n-1);
            for(int i=0; i<preRes.size(); i++){
                res.push_back("0"+preRes[i]);
            }
            for(int i=preRes.size()-1; i>=0; i--){
                res.push_back("1"+preRes[i]);
            }
            return res;
        }
    }
};

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 找出數(shù)組中重復(fù)的數(shù)字 題目:在一個長度為n的數(shù)組里的所有數(shù)字都在0到n-1的范圍內(nèi)。數(shù)組中某些數(shù)字是重復(fù)的,...
    BookThief閱讀 2,014評論 0 2
  • 佳釀淺飲美人歡 味蕾添香時光慢 暮色燈影眾語樂 春夜私廚趣盎然 ——賦詩致謝閨蜜家宴
    一隻有情懷的貓閱讀 740評論 12 13
  • 我還當(dāng)不了別人的英雄,那就先做自己的王者。征服完自己,再去征服別人。 2017年12月20日 星期三 晴 文|陳時...
    小時公子閱讀 5,994評論 12 44

友情鏈接更多精彩內(nèi)容