歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 百度垂直搜索部門實習面經

百度垂直搜索部門實習面經

日期:2017/2/28 15:30:45   编辑:Linux教程

之前面了一次百度的實習,並且拿到offer,下面是實習過程中出現的題目,希望給同樣投百度的同學一個參考。

百度垂直搜索部門實習面經

一面

1. 背景問題:自我介紹,問有關項目經歷,描述以前做的東西

語言:

1. C++ 關於vtable,是類對應vtable還是對象對應vtable(類)

2. 構造函數能否是虛函數(我說的比較含糊:個人認為從語言設計角度來講不需要)

3. malloc和new的差別

4. 析構函數不是虛函數的情況給個例子,問會發生神馬

5. 在一個函數new了一個以後,沒有delete,用什麼技術來解決此處發生的內存洩露

6. cpp編譯成二進制文件的過程

7. delete數組有什麼不同,如果用deletep來delete數組,會有什麼問題

OS:

new分配內存的過程,應該回答出一種內存管理方式

如果有多個程序同時申請內存,這個時候操作系統如何做到互斥訪問

海量數據查詢問題:

用戶的輸入常常會有錯誤,錯誤主要分三種情況,多一個,少一個,寫錯一個。

假如我們在數據庫中存儲了所有正確的輸入,利用什麼技術,例如輸入一個錯誤query,來得到所有正確的query。

這個題目是hr提示我的,其實我也沒有什麼思路
想到的是hash表
對正確的數據存儲的時候做如下處理:
例如我們要存儲abcdef,首先存儲abcdef狀態為1,說明是爭取的字符串。
把這個字符串的每個位置去掉一個分別存儲,用來以後做用戶少輸入一個的檢測。
則裡面有bcdef acdef....

在檢索的時候,假如目標串是A, 檢索A,如果檢索到的標記是1,說明輸入的是正確的。 如果檢索到的字符串標記為0,則說明用戶把爭取的少輸入了一個。現在把A的每個位置去掉一個字符。如果檢索到的標記為1,說明用戶多輸入一個,如果檢索到的標記為0,說明用戶輸入錯一個。

二面:

1. 講項目經歷,大概一共聊了15分鐘吧

2. 一個寺廟有N個台階,一個人站在下面,他要去到第M個台階,假設他只有2個方案可以選擇 1. 向上走3台階 2. 向下走2個台階。請問他到達第M個台階最少要走多少步。給出核心算法並分析復雜度

(dp可以解決)

(後來順便扯到如果台階個數特別多,應該如何分配dp[N], 然後又扯到局部變量,全局靜態變量,和堆變量的差別,包括生命周期,分配上的大小限制,讀寫速度,什麼情況使用哪種變量)

3. 簡化題目為:有兩個數組,A[N], B[M],代表兩個集合。

3.1現在求出集合的交集,給出算法的復雜度

3.2 如果兩個集合都已經排好序,如何求出交集

Copyright © Linux教程網 All Rights Reserved