Hadoop概述開源分布式計算平臺,以HDFS、MapReduce為核心坎怪,為用戶提供了系統(tǒng)底層細(xì)節(jié)透明的分布式基礎(chǔ)架構(gòu).高容錯、高伸縮MR允許用戶在不了解分布式系統(tǒng)底層細(xì)節(jié)的...
將所有查詢進(jìn)行hash(query)%10,映射成新的10個文件恩溅,大約每個1GB隔箍。對每個文件使用hash_map統(tǒng)計頻率并排序,然后對10個結(jié)果再歸并排序脚乡。
分析:IP總個數(shù)2^32 = 4G,如果單機(jī)用一個hash表來存儲,光IP部分就得4G*4 = 16G俯艰,不現(xiàn)實 把文件按照hash(IP)%1000的方式分割成1000個小文...
一個文件占用內(nèi)存大小為5G x 64B = 320G画株,遠(yuǎn)大于實際內(nèi)存4G,不能一次性載入內(nèi)存啦辐。把每個文件中的url進(jìn)行hash(url)%1000谓传,各得到1000個小文件,每...
題目:輸入一個整數(shù)n昧甘,求從1到n這n個整數(shù)的十進(jìn)制表示中1出現(xiàn)的次數(shù)良拼。 解法:
題目:輸入一個正整數(shù)數(shù)組战得,把數(shù)組里所有數(shù)字拼接起來排成一個數(shù)充边,打印能拼接處的所有數(shù)字中最小的一個。例如輸入數(shù)組{3,32,321}常侦,則打印出這3個數(shù)字能排成的最小數(shù)字3213...
題目:把n個骰子仍在地上浇冰,所有骰子朝上一面的點數(shù)之和為s。輸入n聋亡,打印出s的所有可能的值出現(xiàn)的概率肘习。 n個骰子的點數(shù)之和最小為n,最大值為6n坡倔,n個骰子的所有點數(shù)的排列數(shù)為6...
題目一:輸入一個英文句子漂佩,翻轉(zhuǎn)句子中單詞的順序,但單詞內(nèi)字符的順序不變罪塔。為簡單起見投蝉,標(biāo)點符號和普通字母一樣處理。例如輸入字符串"I am a student."征堪, 則輸出"s...
題目:輸入一個遞增排序的數(shù)組和一個數(shù)字s瘩缆,在數(shù)組中查找兩個數(shù),使得他們的和正好是s佃蚜。如果有多對數(shù)字的和等于s庸娱,輸出任意一對即可。 解法: 題目:輸入一個正數(shù)s谐算,打印出所有和為...
題目:輸入一個整形數(shù)組雇毫,數(shù)組里有正數(shù)也有負(fù)數(shù)玄捕,數(shù)組中一個或連續(xù)的多個整數(shù)組成一個子數(shù)組。求所有子數(shù)組的和的最大值棚放。要求時間復(fù)雜度O(n) 解法:動態(tài)規(guī)劃問題
題目:輸入n個整數(shù)枚粘,找出其中最小的k個數(shù)。 解法:top K問題飘蚯。如果n不大馍迄,可以一次性載入內(nèi)存,則用一個數(shù)組保存局骤,然后進(jìn)行多次partition()即可 如果n很大攀圈,無法一...
題目:數(shù)組中有一個數(shù)字出現(xiàn)的次數(shù)超過數(shù)組長度的一半,請找出這個數(shù)字峦甩。 解法:假設(shè)將數(shù)組排序赘来,因為所求數(shù)字出現(xiàn)次數(shù)超過一半,則arr[n/2]即為所求凯傲。排序的時間復(fù)雜度O(nl...
題目:輸入一個字符串犬辰,打印出該字符串中字符的所有排列。 解法:遞歸的思路冰单。以abc為例幌缝,固定首字母,剩余部分全排列即可诫欠。 擴(kuò)展題目:求一個字符串所有的組合解法:給定一個長度為...
題目:輸入一顆二叉樹和一個整數(shù)涵卵,打印出二叉樹中結(jié)點值的和為輸入整數(shù)的所有路徑。從根結(jié)點開始往下一直到葉結(jié)點所經(jīng)過的結(jié)點形成一條路徑荒叼。 解法:
題目:輸入一個整數(shù)數(shù)組轿偎,判斷該數(shù)組是不是某二叉搜索樹的后序遍歷的結(jié)果。 分析:后序遍歷:左右根二叉搜索樹:左子樹都比根小甩挫,又子樹都比根大 根據(jù)后序遍歷的特征贴硫,找到根節(jié)點。然后...
題目:輸入兩個整數(shù)序列英遭,第一個序列表示棧的壓入順序,請判斷第二個序列是否為該棧的彈出順序亦渗。 解法:開一個輔助棧挖诸,模擬出棧入棧的過程:從彈出序列開始,如果當(dāng)前元素等于棧頂元素法精,...