- 相關(guān)推薦
百度校園招聘筆試題目(2)
3、一個(gè)大的含有50M個(gè)URL的記錄,一個(gè)小的含有500個(gè)URL的記錄,找出兩個(gè)記錄里相同的URL。
回答:
首先使用包含500個(gè)url的文件創(chuàng)建一個(gè)hash_set。
然后遍歷50M的url記錄,如果url在hash_set中,則輸出此url并從hash_set中刪除這個(gè)url。
所有輸出的url就是兩個(gè)記錄里相同的url。
4、海量日志數(shù)據(jù),提取出某日訪問百度次數(shù)最多的那個(gè)IP。
回答:
如果日志文件足夠的大,大到不能完全加載到內(nèi)存中的話。
那么可以考慮分而治之的策略,按照IP地址的hash(IP)%1024值,將海量日志存儲(chǔ)到1024個(gè)小文件中。每個(gè)小文件最多包含4M個(gè)IP地址。
對(duì)于每個(gè)小文件,可以構(gòu)建一個(gè)IP作為key,出現(xiàn)次數(shù)作為value的hash_map,并記錄當(dāng)前出現(xiàn)次數(shù)最多的1個(gè)IP地址。
有了1024個(gè)小文件中的出現(xiàn)次數(shù)最多的IP,我們就可以輕松得到總體上出現(xiàn)次數(shù)最多的IP。
5、螞蟻爬桿問題
有一根27厘米長的細(xì)木桿,在第3厘米,7厘米,11厘米,17厘米,23厘米這五個(gè)位置上各有一只螞蟻,木桿很細(xì),不能同時(shí)通過兩只螞蟻,開始時(shí),螞蟻的頭朝向左還是右是任意的,他們只會(huì)朝前走或掉頭,但不會(huì)后退,當(dāng)兩只螞蟻相遇后,螞蟻會(huì)同時(shí)掉頭朝反方向走,假設(shè)螞蟻們每秒鐘可以走1厘米的距離。求所有螞蟻都離開木桿的最小時(shí)間和最大時(shí)間。
答案:
兩只螞蟻相遇后,各自掉頭朝相反方向走。如果我們不考慮每個(gè)螞蟻的具體身份,這和兩只螞蟻相遇后,打個(gè)招呼繼續(xù)向前走沒有什么區(qū)別。
所有螞蟻都離開木桿的最小時(shí)間為
max(min(3,27-3),min(7,27-7), min(11,27-11), min(17,27-17),min(23,27-23))=11
所有螞蟻都離開木桿的最大時(shí)間為
max(max(3,27-3),max(7,27-7), max(11,27-11), max(17,27-17),max(23,27-23))=24
6、有10個(gè)文件,每個(gè)文件1G,每個(gè)文件的每一行都存放的是用戶的query,每個(gè)文件的query都可能重復(fù)。如何按照query的頻度排序?
回答:
1)讀取10個(gè)文件,按照hash(query)%10的結(jié)果將query寫到對(duì)應(yīng)的文件中。這樣我們就有了10個(gè)大小約為1G的文件。任意一個(gè)query只會(huì)出現(xiàn)在某個(gè)文件中。
2)對(duì)于1)中獲得的10個(gè)文件,分別進(jìn)行如下操作
-利用hash_map(query,query_count)來統(tǒng)計(jì)每個(gè)query出現(xiàn)的次數(shù)。
-利用堆排序算法對(duì)query按照出現(xiàn)次數(shù)進(jìn)行排序。
-將排序好的query輸出的文件中。
這樣我們就獲得了10個(gè)文件,每個(gè)文件中都是按頻率排序好的query。
3)對(duì)2)中獲得的10個(gè)文件進(jìn)行歸并排序,并將最終結(jié)果輸出到文件中。
http://www.oriental01.com/【百度校園招聘筆試題目(2)】相關(guān)文章:
校園招聘筆試試題(2)10-07
銀行招聘英語筆試題目04-15
新疆小學(xué)數(shù)學(xué)教師招聘筆試題目(2)10-18
自主招生筆試題目(2)09-05
網(wǎng)易java筆試題目(2)10-25
百度校園招聘面試題07-13
南京銀行筆試題目(2)10-02
電信筆試題目及答案(2)06-05
陜西事業(yè)單位筆試題目(2)08-31