這是字節跳動算法實習崗一面(簡歷面)的覆盤,之前就聽說字節跳動的面試比較難,這次真的親身體驗了一把…
這次面試雖然是簡歷面,但包括了計算機基礎知識、機器學習算法基礎、簡歷項目以及編程題。
計算機基礎知識
主要就c++/python編程語言問問題,不過前輩看出來我對語言這東西目前也就只是用,沒過多研究其背後的原理,問了幾個問題就過去了。
-
python:深拷貝與淺拷貝的區別?如何實現深拷貝copy.deepcopy?dict是如何實現的? 很明顯,後面兩問都涉及到python源碼的實現了,只不過dict我回答數據結構中哈希表的實現原理,前輩好像也覺得ok。
不過還是等我研究下python的源碼再把這兩個問題好好回答一下。可以通過leetcode138-複製帶隨機指針的鏈表來一窺深拷貝的源碼實現。
參考資料:
Java的深拷貝和淺拷貝【雖然是java的,但講的很好,可以將python中不可變類型看作是基本類型,可變類型看作是引用類型,python中實現淺拷貝的一般就=和copy.copy,實現深拷貝的是copy.deepcopy。】
python深拷貝和淺拷貝的區別 -
c++:#define與const定義常量的區別?
#define和const的區別
機器學習算法基礎
- svm的損失函數?
- 核函數的作用?常見的核函數有哪些?多項式核與高斯核的區別?核函數之間的區別應該是對輸入空間數據的分佈做的假設不同,但至於具體做了何種假設,各自的優勢在哪,需要參考資料。另外推薦看下李航老師的《統計學習方法》中svm一章,有更具體的核函數舉例。
參考資料:
svm常用核函數
李航老師《統計學習方法》
支持向量機原理(三)線性不可分支持向量機與核函數
簡歷上的項目
這一塊比較熟,自我感覺表現還可以。
- CTR預測是幹什麼的?
- XGBoost與LightGBM的區別?
- FM與LR的區別?
- 爲什麼NFM線下效果很好,線上效果不佳?
編程題
單鏈表反轉
結語
字節跳動的面試可以說考察面試者的知識面既廣又深,很適合幫助面試者查缺補漏,而且可以同時投多個部門,我覺得很適合有一定面試基礎且需要再鞏固的童鞋去提升自己。這次面試有點尷尬地是在牛客網上寫編程題,要自己編寫輸入!!!這碰上了鏈表與樹的題,還得寫個構造過程。。。
如果覺得不錯,請素質三連哈~~
有疑問,歡迎評論、共同探討-v-