1 完成函式
size_t foo(unsigned int *a1, size_t al1, unsigned int* a2, size_t al2)
其中a1和a2都為無符號陣列,al1和al2為陣列的長度,陣列的長度為偶數。
無符號陣列由一對數字區間組成。如下例:
a1 為 0,1,3,6,10,20
a2 為 0,1,20,50,4,5
則 a1表示以下區間[0,1] [3,6] [10,20]
a2表示以下區間[0,1] [20,50] [4,5]
則a1,a2的重疊部分為[0,1] [4,5],其長度為2
函式foo要求返回重疊區間的長度。上例中為2.
要求:
詳細說明自己的解題思路,說明自己實現的一些關鍵點。
寫出函式foo原**,另外效率盡量高,並給出**的複雜性分析。
限制:
al1和al2的長度不超過100萬。而且同乙個陣列的區間可能出現重重疊。
如a1可能為 0,5, 4,8, 9,100, 70,80
使用的儲存空間盡量小。
2 多人排成乙個佇列,我們認為從低到高是正確的序列,但是總有部分人不遵守秩序。如果說,前面的人比後面的人高(兩人身高一樣認為是合適的),那麼我們就認為這兩個人是一對「搗亂分子」,比如說,現在存在乙個序列:
176, 178, 180, 170, 171
這些搗亂分子對為 <176, 170 >, <176, 171 >, <178, 170 >, <178, 171 >, <180, 170 >, <180, 171 >,
那麼,現在給出乙個整型序列,請找出這些搗亂分子對的個數(僅給出搗亂分子對的數目即可,不用具體的對)
要求:
輸入:
為乙個檔案(in),檔案的每一行為乙個序列。序列全為數字,數字間用」,」分隔。
輸出:
為乙個檔案(out),每行為乙個數字,表示搗亂分子的對數。
詳細說明自己的解題思路,說明自己實現的一些關鍵點。並給出實現的** ,並分析時間複雜度。
限制:
輸入每行的最大數字個數為100000個,數字最長為6位。程式無記憶體使用限制。
二、下面是兩道選做題,請根據自己的情況選擇其中的一道作答(web方向請答第4道,其他職位方向答第3道)。
3 使用者以id形式表示,現給出好友列表資料的文字形式如下:
1 3,5,7,67,78,3332
2 567,890
31 1,66
14 567
78 10000 …
每行資料有兩列,第一列為使用者id,第二列為其好友id,不同id間用」,」分隔,id公升序排列。列之間用」t」分隔。
要求:
請設計合適的索引資料結構,來完成以下查詢:
給定使用者a和b,查詢a和b之間是否有這樣的關係:b是a的二維好友(好友的好友)。
如上例中,10000為1的二維好友,因為78為1的好友,10000為78的好友。
詳細說明自己的解題思路,說明自己實現的一些關鍵點。並給出實現的偽**實現建立索引過程和查詢過程,並說明空間和時間複雜度。
限制:
使用者數量不超過1000萬,平均50個好友。 4
有關係模式:user(userid, username), article(articleid, userid, title, content),vote(articleid, score),user為使用者關係,article為使用者發表的文章關係,vote為文章得票關係,title為文章標題、score為得票數。
(1)用sql語言查詢所有沒發表過文章的使用者名稱;
(2)用sql語言查詢得票數大於100的所有文章標題,按得票數倒序排列;
(3)用sql語言查詢出發表文章數大於5,文章平均得票數大於100的使用者名稱,按平均得票數倒序排列;
(4)設計這些表的主鍵、外來鍵和索引,並指出上面三個查詢所使用的索引。
(5)當使用者數超過1000萬,文章數超過1億時,如何考慮儲存及效能的改進和優化?
百度筆試題
一 選擇題 15分 共10題 1.在排序方法中,關鍵碼比較次數與記錄地初始排列無關的是 a.shell排序 b.歸併排序 c.直接插入排序 d.選擇排序 2.以下多執行緒對int型變數x的操作,哪幾個需要進行同步 a.x y b.x c.x d.x 1 3.void func 中,變數val的記憶體...
百度筆試題
一 選擇題 15分 共10題 1.已知乙個線性表 38,25,74,63,52,48 採用的雜湊函式為hash key key mod 7,將元素雜湊到表長為7的雜湊表中儲存。請選擇後面兩種衝突解決方法分別應用在該雜湊表上進行等概率成功查詢的平均查詢長度,拉鍊法 線性探測法 a.1.0 b.1.5 ...
百度筆試題
現在有一組共計n個固定的集合 n為萬量級 每個集合有個從0開始遞增的集合id,每個 集合包含1 m個 term m為o 100的量級 希望設計乙個程式,能夠持續對外服務,輸入是乙個term陣列,輸 出其中任意乙個集 合id 如果該term陣列包含該集合的所有term 如果找不到,輸出 1。要求 1 ...