百度2011招聘筆試題 答案解析

2021-06-26 15:09:00 字數 2049 閱讀 8664

一、演算法設計

1、設rand(s,t)返回[s,t]之間的隨機小數,利用該函式在乙個半徑為r的圓內找隨機n個點,並給出時間複雜度分析。

2、為分析使用者行為,系統常需儲存使用者的一些query,但因query非常多,故系統不能全存,設系統每天只存m個query,現設計乙個演算法,對使用者請求的query進行隨機選擇m個,請給乙個方案,使得每個query被抽中的概率相等,並分析之,注意:不到最後一刻,並不知使用者的總請求量。

3、c++ stl中vector的相關問題:

(1)、呼叫push_back時,其內部的記憶體分配是如何進行的?

(2)、呼叫clear時,內部是如何具體實現的?若想將其記憶體釋放,該如何操作?

二、系統設計

正常使用者端每分鐘最多發乙個請求至服務端,服務端需做乙個異常客戶端行為的過濾系統,設伺服器在某一刻收到客戶端a的乙個請求,則1分鐘內的客戶端任何其它請求都需要被過濾,現知每一客戶端都有乙個ipv6位址可作為其id,客戶端個數太多,以至於無法全部放到單台伺服器的記憶體hash表中,現需簡單設計乙個系統,使用支援高效的過濾,可使用多台機器,但要求使用的機器越少越好,請將關鍵的設計和思想用圖表和**表現出來。

三、求乙個全排列函式:

如p([1,2,3])輸出:

[123]、[132]、[213]、[231]、[321]、[312]

求乙個組合函式。

一、演算法設計

1. 如下:

1

int count = 0;2

while( count

310 }

2. 不會,轉網友的方法:

思路:如果使用者查詢的數量小於m,那麼直接就存起來。如果使用者查詢的數量大於m,假設為m+i,那麼在1-----m+i之間隨機產生乙個數,如果選擇的是前面m條查詢進行訪問,那麼概率為m/(m+i),如果選擇的是後面i條記錄中的查詢,那麼用這個記錄來替換前面m條查詢記錄的概率為m/(m+i)*(1-1/m)=(m-1)/(m+i),當查詢記錄量很大的時候,m/(m+i)== (m-1)/(m+i),所以每個query被抽中的概率是相等的。

3.

(1)若size < capacity, 則直接將數加入陣列中,a[size++] = 新數;

否則,分配新記憶體,首先capacity = capacity + delta;

delta = capacity / 2 > 1 ? capacity: 1;

temp = new t [capacity];

其次,複製舊元素內容至新記憶體

copy a to temp

最後,釋放舊記憶體, delete a; a = temp;

並把追加新數 a[size++] = 新數。

(2)呼叫clear時,記憶體並不釋放,只是作了size = 0 的處理。

釋放記憶體已經由vector底層做好,使用者一般不用去管,若要強行釋放,可以用swap方法,交換迭代器的位址。

即:v.swap(vector()),可以釋放v的記憶體。

二、系統設計

不會三、求全排列

1 #include 2

using

namespace

std;34

int n = 0

; 5

6void swap(int *a, int *b) 7

13void perm(int list, int k, int

m) 14

22 printf("\n"

);

23 n++;

24}

25else

26

33}

34}

35int

main()

36;

38 perm(list, 0, 4

);

39 printf("

total:%d\n

", n);

40return0;

41 }

網易遊戲2011招聘筆試題 答案解析

網易遊戲 2011.10.15 1 對於乙個記憶體位址是32位 記憶體頁是8kb的系統。0x0005f123這個位址的頁號與頁內偏移分別是多少?2 如果x大於0並小於65536,用移位法計算x乘以255的值為?3 乙個包含n個節點的四叉樹,每個節點都有四個指向孩子節點的指標,這4n個指標中有個空指標...

百度2023年招聘技術類崗位筆試題

第一大題 1.定義棧的資料結構,新增乙個min函式,找到棧的最小元素。要求函式min push pop的時間複雜度為o 1 請簡要描述思路。2.是乙個讀程式寫結果,並判斷函式功能。同時要指出程式的隱患 程式太長了,記不住了。3.分析線性表 二叉平衡樹和雜湊表儲存資料時各自的優劣。第二大題 1.一串首...

百度產品筆試題 答案

英文題幹,中文作答 1.4個人賽跑,要求跑兩次算平均排名。已知 a永遠不是最後一名,有乙個人兩次名次相同,c永遠比d跑得快,a至少有乙個第三名,b至少有乙個第一名,d,c兩個人都有乙個第二名,求兩次賽跑的排名情況。答 1.從c d出發,c比d塊,且二者都有乙個第二名,當d為第二時,c肯定為第一。將c...