百度電話面試

 
1. 筆試最後一題。就是那個song和url的題目。完全沒有準備,被問倒了,我說用b+樹,可是不知道怎麼構造文件
2. 一個有100萬個字符串的數組,要求除去重複的字符串。內存爲1g我回答的是用hash表,面試官不滿意,問hash表的hash函數和衝突率,然後我又說二叉排序樹,還是有問題
3. 項目情況,介紹了一下我的項目,他說我的項目只有1個人,就不要吹成負責人了。還問了一下時間,我回答1年,他的口氣還是是太長了
4. 問了一個網絡通信和socket通信的問題。1個server,很多個client發送運算請求,比如說1+1,然後server回覆2。問怎麼樣才能使得在某些運算比較複雜的情況下使得server能夠處理的很快。答案是首先採用一個網絡線程和多個處理線程。共用一個請求存儲區,處理線程不斷地去請求存儲區中取請求,然後處理,然後再去取,這樣的話,使得處理線程不空閒,就提高了處理效率。
5. 兩個整型數組,一個大小爲10萬,另一個大小爲64,求交集,內存爲1g
第一種情況,如果64數組的元素大小小於2^30,可以遍歷它,然後找到最大的建立一個數組a,大小爲最大的數,標記64數組的數爲1,然後遍歷10萬的數組,看其對應a的索引值是否爲1。時間複雜度爲
第二種情況,如果64數組的元素大小爲任意整型數,那就可以根據它建立一個二叉搜索樹,然後再遍歷10萬的數組,在二叉搜索樹中查找,查到了就是交集
第三種情況,如果有百萬個64的數組,那就根據10萬數組建立一個hash表,然後依次從文件中讀64數組,然後再看對因的hash值有沒有
經驗教訓:面試前一定要再複習一下筆試的題目,特別是沒有做出來的
附:
一個排序後的數組,把前面一些數放到後面,然後查找。求複雜度和算法。
使用二分查找變形
中間數要與欲查找數,數組的頭尾兩個數進行比較,確定搜索範圍
時間複雜度O(lgn),空間複雜度O(1)
外排序
附:要想在電面中取得好成績,去旁聽其他人的電面是一個不錯的方法
發佈了98 篇原創文章 · 獲贊 23 · 訪問量 41萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章