9.7日晚于廈門商務會館筆試
共兩題:
1. 關于圖檔檔案存儲的一個開放性的題目,沒什麼好說的。
2. 有一顆樹,每一個樹節點存儲着一個數字,現在想要找到兩個相同的節點(這兩個節點存儲的數字及其所有子樹均相等)。
以下是我答題時候的思路,歡迎大家讨論。
思路1:
1) 首先通過一個周遊(如前序周遊)得到一個數字序列,并對樹中的葉子節點在這個序列中做标記(現在問題退化為在一個數字串中找出重複的字元串,且這些字元串應該是以标記的葉子節點結尾的)
2) 采用字尾樹可以很友善的求得相同的數字串序列
3) 驗證2)中得到的結果(應該是一個小結果集) 是否滿足要求,驗證的時間複雜度應該是比較小的
思路2:
1) 對樹中的每一個節點設定一個權值,這個權值為其所有子節點的權值及其自身數字值之間的乘積(可能需要bignumber,或者考慮将這些數字進行移位異或)
2) 采用後序周遊,計算每一個節點的權值,并順帶記錄其樹深度。統計權值和深度均相同的節點
3) 驗證2)中得到的結果是否滿足要求,驗證的時間複雜度應該是比較小的
9.12日于淘寶北京總部面試(共兩面,研發崗位)
第一面,問的問題比較雜,大緻包括如下内容:
1) 資料庫索引問題,資料庫的索引是如何實作的 ,B/B+樹的差別
2) 資料庫的存儲引擎比較
3) SQL語言的編寫,主要涉及的關鍵字包括: like、order、group、sum等
3) 設計模式中的裝飾模式
4) Java中記憶體是如何實作的,以及垃圾回收機制分析
5) HDFS的設計原理,及解釋 什麼是一緻性Hash
6) Git與SVN之間的差別
7) 排序(快排)及改進再改進
第二面,問的問題同樣比較雜,沒有算法面試
1) 資料庫存儲引擎比較
2) 搜尋引擎原理
3) 給看一張資料結構的某個運作時切面圖,讓分析這個資料結構是用來幹嘛的