筆試(Written Test)是一種與面試對(duì)應(yīng)的測(cè)試,是考核應(yīng)聘者學(xué)識(shí)水平的重要工具。這種方法可以有效的測(cè)量應(yīng)聘人的基本知識(shí)、專業(yè)知識(shí)、管理知識(shí)、綜合分析能力和文字表達(dá)能力等素質(zhì)及能力的差異。下面是企業(yè)筆試題目及答案,請(qǐng)參考!
騰訊筆試題:統(tǒng)計(jì)論壇在線人數(shù)分布
求一個(gè)論壇的在線人數(shù),假設(shè)有一個(gè)論壇,其注冊(cè)ID有兩億個(gè),每個(gè)ID從登陸到退出會(huì)向一個(gè)日志文件中記下登陸時(shí)間和退出時(shí)間,要求寫(xiě)一個(gè)算法統(tǒng)計(jì)一天中論壇的用戶在線分布,取樣粒度為秒。
一天總共有 3600*24 = 86400秒。
定義一個(gè)長(zhǎng)度為86400的整數(shù)數(shù)組int delta[86400],每個(gè)整數(shù)對(duì)應(yīng)這一秒的人數(shù)變化值,可能為正也可能為負(fù)。開(kāi)始時(shí)將數(shù)組元素都初始化為0。
然后依次讀入每個(gè)用戶的登錄時(shí)間和退出時(shí)間,將與登錄時(shí)間對(duì)應(yīng)的整數(shù)值加1,將與退出時(shí)間對(duì)應(yīng)的整數(shù)值減1。
這樣處理一遍后數(shù)組中存儲(chǔ)了每秒中的人數(shù)變化情況。
定義另外一個(gè)長(zhǎng)度為86400的整數(shù)數(shù)組int online_num[86400],每個(gè)整數(shù)對(duì)應(yīng)這一秒的論壇在線人數(shù)。
假設(shè)一天開(kāi)始時(shí)論壇在線人數(shù)為0,則第1秒的人數(shù)online_num[0] = delta[0]。第n+1秒的人數(shù)online_num[n] = online_num[n-1] + delta[n]。
這樣我們就獲得了一天中任意時(shí)間的在線人數(shù)。
騰訊筆試題:從10G個(gè)數(shù)中找到中數(shù)
在一個(gè)文件中有 10G 個(gè)整數(shù),亂序排列,要求找出中位數(shù)。內(nèi)存限制為 2G。
不妨假設(shè)10G個(gè)整數(shù)是64bit的。
2G內(nèi)存可以存放256M個(gè)64bit整數(shù)。
我們可以將64bit的整數(shù)空間平均分成256M個(gè)取值范圍,用2G的內(nèi)存對(duì)每個(gè)取值范圍內(nèi)出現(xiàn)整數(shù)個(gè)數(shù)進(jìn)行統(tǒng)計(jì)。這樣遍歷一邊10G整數(shù)后,我們便知道中數(shù)在那個(gè)范圍內(nèi)出現(xiàn),以及這個(gè)范圍內(nèi)總共出現(xiàn)了多少個(gè)整數(shù)。
如果中數(shù)所在范圍出現(xiàn)的整數(shù)比較少,我們就可以對(duì)這個(gè)范圍內(nèi)的整數(shù)進(jìn)行排序,找到中數(shù)。如果這個(gè)范圍內(nèi)出現(xiàn)的整數(shù)比較多,我們還可以采用同樣的方法將此范圍再次分成多個(gè)更小的范圍(256M=2^28,所以最多需要3次就可以將此范圍縮小到1,也就找到了中數(shù))。
本文來(lái)源:http://www.nvnqwx.com/shiti/375506.htm