當前位置:高考升學網(wǎng) > 招聘筆試題 > 正文
問答題:
一、有一個單向循環(huán)鏈表隊列,從頭開始報數(shù),當報到m或者m的倍數(shù)的元素出列,根據(jù)出列的先后順序重新組成單向循環(huán)鏈表。
函數(shù)原型:void reorder(Node head , int m)
二、優(yōu)酷是中國第一的視頻網(wǎng)站,每天有上億的視頻被觀看,現(xiàn)在公司請研發(fā)人員找出最熱門的視頻。
該問題的輸入可以簡化為一個字符串文件,每一行都表示一個視頻id,然后要找出出現(xiàn)次數(shù)最多的前100個視頻id,將其輸出,同時輸出該視頻的出現(xiàn)次數(shù)。
1、假設(shè)每天的視頻播放次數(shù)為3億次,被觀看的視頻數(shù)量為一百萬個,每個視頻ID的長度為20個字節(jié),限定使用的內(nèi)存為1G。請先描述做法,再寫代碼。
2、假設(shè)每個月的視頻播放次數(shù)為100億次,被觀看的視頻數(shù)量為1億個,每個視頻ID的長度為20個字節(jié),一臺機器被限定使用的內(nèi)存為1G。
那么想找這個月被播放次數(shù)最多的前100個視頻,應(yīng)該怎么做?請描述清楚可能的辦法。
解析:海量數(shù)據(jù)的處理。無法一次性裝入內(nèi)存,可先hash之分為多個文件處理,堆或者Trie樹統(tǒng)計次數(shù),求出每個文件中的Top 100。歸并之求出總的top 100。
對于第二問:還可以hadoop mapReduce處理之。
首先統(tǒng)計每個視頻被觀看次數(shù),得到
以cnt作為關(guān)鍵字建立最小堆。遍歷所有鍵值對,若堆的size小于100,則將鍵值對直接插入堆,否則比較鍵值對和堆頂元素大小,若cnt大于堆頂元素的cnt,則彈 出堆頂元素并將鍵值對插入堆。
對于第一問,由于id個數(shù)較少,統(tǒng)計部分可直接使用stl的map容器。
對于第二問,由于id個數(shù)太大,直接hash內(nèi)存不夠,需要mapReduce。
三、給你一個由n-1個整數(shù)組成的未排序的序列,其元素都是1到n中的不同的整數(shù)。請寫出一個尋找序列中缺失整數(shù)的線性時間算法。
2020年河北新聞網(wǎng)兩學一做
時間:2023-09-18 07:0:242020年河北新聞網(wǎng)兩學一做
時間:2023-09-15 11:0:59兩學一做學習教育知
時間:2023-09-21 06:0:302020年開展兩學一做學習教
時間:2023-09-19 21:0:30