2015騰訊筆試題 基於遞迴的格雷碼生成

2021-07-05 04:07:57 字數 741 閱讀 6717

基於遞迴的格雷碼生成

生成1位的格雷碼為: 0

1生成2位的格雷碼為: 00

0111

10生成三位的格雷碼為:

000001

010011

111

110

101

100

從中我們可以看出規律,生成n位的格雷碼是在n-1位格雷碼的基礎上新增0和1。n-1位的格雷碼前一半是按照0101依次新增,後一半是按照1010依次新增,因為我們觀察可知,格雷碼除了最高位(左邊第一位),格雷碼的位完全上下對稱,如上面所述。基於此規律,寫的**如下

#include #include #include#includeusing namespace std;

vectorcalcgraycode(const int n)//n表示生成的格雷碼的位數

res = calcgraycode(n - 1);

vectorresult;

int rear = res.size();

for(int i = 0 ; i < rear;i++)

else

} return result;

}int main()

{ vectorstr;

str = calcgraycode(4);//n表示生成的格雷碼的位數

for(int i = 0; i < str.size();i++)

{ cout<

騰訊的遞迴筆試題目

題目是這樣的 f m,n m n 1 if m n 0 f m,n f m 1,f m,n 1 填空是 top 0 do elsewhile 1 top printf f d n f 解答過程 這是一道遞迴題目,說實話,第一次看到這種遞迴題目,還是感覺比較害怕,畢竟 f m,n f m 1,f m,...

演算法整理 2015騰訊開發崗筆試題

打擂演算法 傳送門 該演算法很好地將一般需要o nlogn 時間複雜度得到的結果減少成o n 但是前提條件是出現最多的數的出現次數大於 不包括等於 集合中個數的一半。float mostelement vectorv int count 0 float m for int i 0 i 該演算法的關鍵...

筆試題目 騰訊2023年9月基礎研究筆試題

第一題 進行特徵選擇時,即分析哪些協變數對目標變數有較大影響時,有哪些常用的方法?你本人更看好其中哪些?為什麼?第二題 網路上流傳乙個故事,關於資料的神奇性 某商場向一位未婚少女郵寄一些用於保胎的商品目標和折扣券,其父親發火,後證實該少女確實懷孕,解釋一下如何做到的?個人從一下幾個方面答的,可能存在...