網易有道演算法題

2021-06-08 20:20:27 字數 259 閱讀 3966

題目:給16個數字,1~16,每個數字都有乙個出現的概率。然後隨機選中乙個數字,讓你猜是選中的是哪個數字。猜的方法是,你可以給定乙個數字的集合,對方告訴你選中的數在不在你給的集合裡。求最差情況下最好的演算法,還有期望最小的演算法。

這道題可以用赫夫曼編碼做,根據數字出現的概率,進行編碼。然後猜的時候,每次選擇一顆子樹,依次進行。

赫夫曼編碼的知識見《演算法導論》16.3節

關於huffman編碼的詳細介紹及**可以見另一篇博文

網易有道程式設計題 恢復佇列

題目詳情 給出乙個含有n個元素的佇列,其內容為1到n的無序整數,按照給定演算法輸出該佇列,使得該佇列依次輸出1,2,3,n 1,n。給定演算法為 void outque queue q 即每次將隊首元素放到隊尾,同時讀取當前隊首,並彈出丟棄。現在要求輸入t組整數,每乙個整數n,輸出對應的n的原本佇列...

網易有道面試

有乙個數,可以乘2或者 1,把它變成n,求出最少次數 http的get和post有什麼區別 給出乙個字串,判斷這個字串是否是乙個合理的ip位址。字串長度 字串的每個字元都是數字或者點,並且只有3個點,並且得到點的下標 開頭第乙個字元不是點,按點分割,得到的四個數字是否都在 0,255 之類,儲存下來...

網易有道2017內推程式設計題

1.洗牌 洗牌在生活中十分常見,現在需要寫乙個程式模擬洗牌的過程。現在需要洗2n張牌,從上到下依次是第1張,第2張,第3張一直到第2n張。首先,我們把這2n張牌分成兩堆,左手拿著第1張到第n張 上半堆 右手拿著第n 1張到第2n張 下半堆 接著就開始洗牌的過程,先放下右手的最後一張牌,再放下左手的最...