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