溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

云計(jì)算面試題知識(shí)匯總,云計(jì)算面試經(jīng)驗(yàn)講解

發(fā)布時(shí)間:2020-08-10 13:39:52 來(lái)源:ITPUB博客 閱讀:198 作者:千鋒云計(jì)算 欄目:云計(jì)算

云計(jì)算崗位面試其實(shí)并沒有很多人想的那么復(fù)雜,主要是電話面試,估計(jì)是面試的人比較少,簡(jiǎn)單的問(wèn)了一些技術(shù)問(wèn)題,在問(wèn)了有一些商務(wù)對(duì)接方面的問(wèn)題第一輪,技術(shù)面的時(shí)候,問(wèn)了云計(jì)算的3個(gè)層面,云計(jì)算現(xiàn)在發(fā)展情況,商務(wù)面的時(shí)候,問(wèn)了商務(wù)對(duì)接如何有效進(jìn)行;第二輪,主要問(wèn)做過(guò)什么項(xiàng)目,如何做項(xiàng)目,下面給大家分享幾個(gè)實(shí)用的云計(jì)算面試題知識(shí)。

云計(jì)算面試題知識(shí)匯總,云計(jì)算面試經(jīng)驗(yàn)講解

1、海量日志數(shù)據(jù),提取出某日訪問(wèn)百度次數(shù)最多的那個(gè)IP。

IP是32位的,最多有個(gè)2^32個(gè)IP。同樣可以采用映射的方法,比如模1000,把整個(gè)大文件映射為1000個(gè)小文件,再找出每個(gè)小文中出現(xiàn)頻率最大的IP(可以采用hash_map進(jìn)行頻率統(tǒng)計(jì),然后再找出頻率最大的幾個(gè))及相應(yīng)的頻率。然后再在這1000個(gè)最大的IP中,找出那個(gè)頻率最大的IP,即為所求。

2、搜索引擎會(huì)通過(guò)日志文件把用戶每次檢索使用的所有檢索串都記錄下來(lái),每個(gè)查詢串的長(zhǎng)度為1-255字節(jié)。

假設(shè)目前有一千萬(wàn)個(gè)記錄(這些查詢串的重復(fù)度比較高,雖然總數(shù)是1千萬(wàn),但如果除去重復(fù)后,不超過(guò)3百萬(wàn)個(gè)。一個(gè)查詢串的重復(fù)度越高,說(shuō)明查詢它的用戶越多,也就是越熱門。),請(qǐng)你統(tǒng)計(jì)最熱門的10個(gè)查詢串,要求使用的內(nèi)存不能超過(guò)1G。

第一步借用hash統(tǒng)計(jì)進(jìn)行預(yù)處理: 先對(duì)這批海量數(shù)據(jù)預(yù)處理(維護(hù)一個(gè)Key為Query字串,Value為該Query出現(xiàn)次數(shù),即Hashmap(Query,Value),每次讀取一個(gè)Query,如果該字串不在Table中,那么加入該字串,并且將Value值設(shè)為1;如果該字串在Table中,那么將該字串的計(jì)數(shù)加一即可。最終我們?cè)贠(N)(N為1千萬(wàn),因?yàn)橐闅v整個(gè)數(shù)組一遍才能統(tǒng)計(jì)處每個(gè)query出現(xiàn)的次數(shù))的時(shí)間復(fù)雜度內(nèi)用Hash表完成了統(tǒng)計(jì);

第二步借用堆排序找出最熱門的10個(gè)查詢串:時(shí)間復(fù)雜度為N'*logK。維護(hù)一個(gè)K(該題目中是10)大小的小根堆,然后遍歷3百萬(wàn)個(gè)Query,分別和根元素進(jìn)行對(duì)比(對(duì)比value的值),找出10個(gè)value值最大的query

最終的時(shí)間復(fù)雜度是:O(N) + N'*O(logK),(N為1000萬(wàn),N’為300萬(wàn))

或者:采用trie樹,關(guān)鍵字域存該查詢串出現(xiàn)的次數(shù),沒有出現(xiàn)為0。最后用10個(gè)元素的最小推來(lái)對(duì)出現(xiàn)頻率進(jìn)行排序。

云計(jì)算面試題知識(shí)匯總,云計(jì)算面試經(jīng)驗(yàn)講解

3、有一個(gè)1G大小的一個(gè)文件,里面每一行是一個(gè)詞,詞的大小不超過(guò)16字節(jié),內(nèi)存限制大小是1M。返回頻數(shù)最高的100個(gè)詞。

第一步分而治之/hash映射到順序讀文件中,對(duì)于每個(gè)詞x,取hash(x)%5000,然后按照該值存到5000個(gè)小文件(記為x0,x1,...x4999)中。這樣每個(gè)文件大概是200k左右。如果其中的有的文件超過(guò)了1M大小,還可以按照類似的方法繼續(xù)往下分,直到分解得到的小文件的大小都不超過(guò)1M。 

第二步hash統(tǒng)計(jì)對(duì)每個(gè)小文件,統(tǒng)計(jì)每個(gè)文件中出現(xiàn)的詞以及相應(yīng)的頻率(可以采用trie樹/hash_map等),并取出出現(xiàn)頻率最大的100個(gè)詞(可以用含100個(gè)結(jié)點(diǎn)的最小堆),并把100個(gè)詞及相應(yīng)的頻率存入文件,這樣又得到了5000個(gè)文件。

第三步堆/歸并排序就是把這5000個(gè)文件進(jìn)行歸并(也可以采用堆排序)的過(guò)程了。(如果內(nèi)存允許可以將這5000個(gè)文件中的所有元素合并起來(lái),利用堆獲得top 100)

4、 給定a、b兩個(gè)文件,各存放50億個(gè)url,每個(gè)url各占64字節(jié),內(nèi)存限制是4G,讓你找出a、b文件共同的url?

可以估計(jì)每個(gè)文件安的大小為5G×64=320G,遠(yuǎn)遠(yuǎn)大于內(nèi)存限制的4G。所以不可能將其完全加載到內(nèi)存中處理??紤]采取分而治之的方法。

遍歷文件a,對(duì)每個(gè)url求取hash(url)%1000,然后根據(jù)所取得的值將url分別存儲(chǔ)到1000個(gè)小文件(記為a0,a1,...,a999)中。這樣每個(gè)小文件的大約為300M。

遍歷文件b,采取和a相同的方式將url分別存儲(chǔ)到1000小文件(記為b0,b1,...,b999)。這樣處理后,所有可能相同的url都在對(duì)應(yīng)的小文件(a0vsb0,a1vsb1,...,a999vsb999)中,不對(duì)應(yīng)的小文件不可能有相同的url。然后我們只要求出1000對(duì)小文件中相同的url即可。

求每對(duì)小文件中相同的url時(shí),可以把其中一個(gè)小文件的url存儲(chǔ)到hash_set中。然后遍歷另一個(gè)小文件的每個(gè)url,看其是否在剛才構(gòu)建的hash_set中,如果是,那么就是共同的url,存到文件里面就可以了。

云計(jì)算面試題知識(shí)匯總,云計(jì)算面試經(jīng)驗(yàn)講解

5.  騰訊面試題:給40億個(gè)不重復(fù)的unsigned int的整數(shù),沒排過(guò)序的,然后再給一個(gè)數(shù),如何快速判斷這個(gè)數(shù)是否在那40億個(gè)數(shù)當(dāng)中?

方案1:申請(qǐng)512M的內(nèi)存(2^32/8=512MB),一個(gè)bit位代表一個(gè)unsigned int值。讀入40億個(gè)數(shù),設(shè)置相應(yīng)的bit位,讀入要查詢的數(shù),查看相應(yīng)bit位是否為1,為1表示存在,為0表示不存在。

方案2:因?yàn)?^32為40億多,所以給定一個(gè)數(shù)可能在,也可能不在其中;這里我們把40億個(gè)數(shù)中的每一個(gè)用32位的二進(jìn)制來(lái)表示假設(shè)這40億個(gè)數(shù)開始放在一個(gè)文件中。

然后將這40億個(gè)數(shù)分成兩類:  1. 最高位為0  2. 最高位為1 

并將這兩類分別寫入到兩個(gè)文件中,其中一個(gè)文件中數(shù)的個(gè)數(shù)<=20億,而另一個(gè)>=20億(這相當(dāng)于折半了);與要查找的數(shù)的最高位比較并接著進(jìn)入相應(yīng)的文件再查找

再然后把這個(gè)文件為又分成兩類: 1.次最高位為0 2.次最高位為1

并將這兩類分別寫入到兩個(gè)文件中,其中一個(gè)文件中數(shù)的個(gè)數(shù)<=10億,而另一個(gè)>=10億(這相當(dāng)于折半了); 與要查找的數(shù)的次最高位比較并接著進(jìn)入相應(yīng)的文件再查找。 ....... 以此類推,就可以找到了,而且時(shí)間復(fù)雜度為O(logn)。


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI