社招一年:算法面經(jīng)

美團(tuán)算法面經(jīng)(搜索算法)

一面

  1. 邏輯題:8 5 3升的桶 8升水, 分成兩個(gè)4升
    比較簡(jiǎn)單的邏輯題,也有通用題目 LeetCode 水壺問(wèn)題 先試著做一下題目再看 題解

  2. 算法題:一個(gè)字符串,找到第一個(gè)只出現(xiàn)一次的字符,n空間n時(shí)間,只能掃一次
    有原題:牛課題霸:第一個(gè)只出現(xiàn)一次的字符
    set或者更省內(nèi)存的bitset

  3. 算法題:字符串把多個(gè)連續(xù)空格合并成一個(gè),輸入是char*,要求原地空間 答案

  4. 算法題:一個(gè)整數(shù)數(shù)組,找最長(zhǎng)的先增后降的序列
    基礎(chǔ)題:牛客題霸:最長(zhǎng)遞增子序列
    先分別找最長(zhǎng)遞增和最長(zhǎng)遞減的,然后合并一下就好了

  5. c++基礎(chǔ),shared ptr的特點(diǎn)是什么,可以引用傳參嗎?
    c++11的智能指針,通過(guò)引用計(jì)數(shù)來(lái)管理,引用計(jì)數(shù)為0的時(shí)候釋放內(nèi)存,有效防止內(nèi)存泄露的問(wèn)題,每次拷貝引用計(jì)數(shù)都會(huì)+1,在傳參時(shí),不可以引用傳參,原因是引用傳參不會(huì)增加引用計(jì)數(shù),在多線程或者閉包場(chǎng)景可能會(huì)導(dǎo)致引用計(jì)數(shù)混亂引發(fā)core或者內(nèi)存泄露的問(wèn)題

  6. 項(xiàng)目:為什么設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)解決問(wèn)題,目前網(wǎng)絡(luò)存在的問(wèn)題是什么,后續(xù)可以怎么優(yōu)化

  7. 二叉樹想必大家都了解,對(duì)于只有一個(gè)節(jié)點(diǎn)的二叉樹,只會(huì)有一種結(jié)構(gòu),對(duì)于有兩個(gè)節(jié)點(diǎn)的二叉樹,那么會(huì)有2種可能的結(jié)構(gòu),那么問(wèn)題來(lái)了,對(duì)于有n個(gè)節(jié)點(diǎn)的二叉樹,一共有幾種可能的情況?

當(dāng)時(shí)直接就想列一下3,4,5個(gè)節(jié)點(diǎn)分別有多少種可能,然后看能不能找到規(guī)律,可是當(dāng)去遍歷4個(gè)節(jié)點(diǎn)時(shí),發(fā)現(xiàn)遍歷不住了,就放棄了。然后靈機(jī)一動(dòng),發(fā)現(xiàn)對(duì)于n個(gè)節(jié)點(diǎn)的二叉樹,去掉根節(jié)點(diǎn)之后,會(huì)出現(xiàn)2個(gè)種情況。
第一種
一種是變成一顆n-1個(gè)節(jié)點(diǎn)的二叉樹,這種情況存在兩種可能。
第二種
另一種情況是,會(huì)變成一個(gè)a個(gè)節(jié)點(diǎn)的二叉樹和一個(gè)b個(gè)節(jié)點(diǎn)的二叉樹,a+b=n-1。
這樣很容易列出遞推公式,問(wèn)題就引刃而解了。

上面公式可以優(yōu)化一下,我們?cè)O(shè) ,這樣可以優(yōu)化為

  1. 這個(gè)題目感覺挺新穎的,大意是我們令a-z對(duì)應(yīng)數(shù)字1-26,這樣我發(fā)送給你一串?dāng)?shù)字串比如123,然后進(jìn)行解析會(huì)有abc,lc,aw這3種情況,然后你輸出3表示有3種可能。那么問(wèn)題就來(lái)了,我傳給你一串?dāng)?shù)字串,然后你告訴我有多少種可能的情況。

這題目很明顯是用動(dòng)態(tài)規(guī)劃來(lái)做,最開始我想法是用來(lái)表示的串有多少種可能性,那么遞推公式為

當(dāng)時(shí)以為就解決了,可是發(fā)現(xiàn)在對(duì)123進(jìn)行驗(yàn)證的時(shí)候發(fā)現(xiàn)有4種情況,最后發(fā)現(xiàn)原來(lái)是1,2,3這種情況重復(fù)了。簡(jiǎn)直心碎啊,當(dāng)時(shí)時(shí)間緊迫,沒有容我三思。不過(guò)面試完了之后,我繼續(xù)研究這個(gè)問(wèn)題,當(dāng)天晚上就想出來(lái)了。用表示子串有多少種可能的表示,我們可以發(fā)現(xiàn),對(duì)于來(lái)說(shuō),無(wú)非就是在后面加了一個(gè)數(shù)字,當(dāng)不能構(gòu)成一個(gè)1-26的數(shù)字時(shí),那么其實(shí),而當(dāng)可以構(gòu)成1-26的數(shù)字時(shí),.這樣遞推公式就是

二面

  1. 項(xiàng)目:為什么設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)解決問(wèn)題,目前網(wǎng)絡(luò)存在的問(wèn)題是什么(確實(shí)是和一面的問(wèn)題一模一樣)
  2. 二維有序數(shù)組 找target
    原題:牛課題霸:二維數(shù)組中的查找
  3. 一個(gè)人打靶十次命中7次,命中率是70%,這個(gè)概率是怎么估算出來(lái)的
    面試官實(shí)際是想問(wèn)極大似然估計(jì),理解了題意之后就好回答了
  4. 兩瓶墨水,一紅一黑,用小勺從紅墨水瓶里舀一勺放入黑瓶,攪拌均勻,然后從黑瓶里舀一勺放入紅瓶,這時(shí)紅瓶里的紅墨水多還是黑瓶里的黑墨水多?如果不攪勻呢?
    都是一樣多,攪拌均勻的話可以很容易的寫出公式。不攪勻的話,直接宏觀來(lái)想,是守恒的,紅墨水少了多少,就需要用多少黑墨水來(lái)填

三面

  1. 算法題:順時(shí)針打印二維數(shù)組
    原題 牛課題霸:順時(shí)針打印矩陣
    關(guān)鍵考點(diǎn)是邊界條件,奇數(shù)偶數(shù)兩種情況如何簡(jiǎn)化代碼,極限情況(例如1*1的矩陣)要確保能打印
  2. 項(xiàng)目細(xì)節(jié) 出發(fā)點(diǎn),為什么這么做,如何迭代的
  3. 如果離開前一家公司的話,如果挽留你,什么地方最讓你留戀,最可能不離職了

美團(tuán) 問(wèn)的算法和機(jī)器學(xué)習(xí)的都很深入。

問(wèn)的算法和機(jī)器學(xué)習(xí)的都很深入。
先自我介紹之后,就是編程算法題了
1.輸出一個(gè)字符串的下一個(gè)字典序
如ABDC 輸出ACBD(不會(huì)。。)

  1. 輸出一個(gè)字符串的最長(zhǎng)回文(沒寫完整,時(shí)間拖太久。。,他直接說(shuō)下一個(gè)了,應(yīng)該要用兩個(gè)輔助棧)
    3.n個(gè)蘋果放入m個(gè)盤子中有多少種方法(不能用排列組合,算法實(shí)現(xiàn))(動(dòng)態(tài)規(guī)劃)
    問(wèn)題:
  2. 兩個(gè)集合如何求并集,交集
  3. 兩個(gè)集合如何求相似度,維度不一定相同
  4. 如何找出N個(gè)數(shù)的中位數(shù),內(nèi)存不夠怎么辦
  5. Top k問(wèn)題
  6. 你最熟悉的兩個(gè)機(jī)器學(xué)習(xí)的算法,我說(shuō)了LR和SVM。然后讓我講SVM,需要推公式,我。。推。如何分類非線性問(wèn)題,答核函數(shù),知道xx核函數(shù)嗎(徑向基核,好吧,就是高斯核),沒聽過(guò)(只知道多項(xiàng)式核,高斯核),核函數(shù)的優(yōu)缺點(diǎn)(優(yōu)點(diǎn)避免高維運(yùn)算,缺點(diǎn)不知道。。),SVM的優(yōu)缺點(diǎn),balabala
  7. 給你1000w篇文檔或html,如何判斷是否為體育類的新聞,需要給出系統(tǒng)的方法(分詞+人工判定+詞庫(kù)+SVM訓(xùn)練),你覺得整個(gè)過(guò)程中有哪些需要注意的地方,我提到了過(guò)擬合,面試官:有哪些防止過(guò)擬合的方法,答:添加正則化項(xiàng),交叉驗(yàn)證,樹的話可以剪枝,問(wèn):還有呢,我。。。
  8. HashMap如何實(shí)現(xiàn),解決碰撞還有哪些方法,TreeMap呢,紅黑樹的原理,平均時(shí)間復(fù)雜度,最差的時(shí)間復(fù)雜度?O(lgn)?那邊比較耗時(shí)間?答更新的時(shí)候需要左旋右旋?
  9. 知道m(xù)ap-reduce嗎,shuffle是做什么用的?如何用map-reduce對(duì)浮點(diǎn)數(shù)排序(只做一次map-reduce)?
  10. 用什么數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)深度優(yōu)先搜索?廣度優(yōu)先搜索?層次遍歷?我:層次遍歷和廣度優(yōu)先搜索不是類似的嗎,面試官:你確定?我。。
  11. 問(wèn)了下協(xié)同過(guò)濾和KNN模型,他說(shuō)了幾個(gè)術(shù)語(yǔ)我都沒聽明白,我只知道根據(jù)相似度做推薦。面試官說(shuō):貌似你的項(xiàng)目都是偏開發(fā)的嘛,我。。有沒有手動(dòng)實(shí)現(xiàn)過(guò)什么機(jī)器學(xué)習(xí)算法,我。。
  12. 實(shí)現(xiàn)負(fù)載均衡的算法,輪詢,一致性hash,最小連接數(shù)。。面試官:還有呢,我。。想不到了
    面試官貌似比較糾結(jié)要不要讓我過(guò),考察的確實(shí)蠻深入,編程的寫的不好,最后猶豫了一下還是把我掛了,這一面時(shí)間真的很長(zhǎng)啊9:15-10.30,面試官各種追問(wèn),招架不住。

微軟Bing團(tuán)隊(duì)面經(jīng)

寫在前面

微軟的面試整體偏向基礎(chǔ),英語(yǔ)能力考察僅限于個(gè)人簡(jiǎn)介和項(xiàng)目描述,如果運(yùn)氣好的話都是中國(guó)的面試官,沒有英文面試。

投遞簡(jiǎn)歷之后會(huì)有hr先和你聊一輪,要求做一個(gè)一分鐘的英文自我介紹,然后會(huì)對(duì)英文能力做一個(gè)整體評(píng)估,告訴你應(yīng)該怎么準(zhǔn)備可能的英文面試。


下面是技術(shù)干貨部分

電話面試

微軟的社招面試通常是先進(jìn)行一輪電話面試,面試通過(guò)的話才會(huì)邀請(qǐng)進(jìn)行現(xiàn)場(chǎng)面試

  1. 什么是死鎖,造成死鎖的原因有哪些
  2. 數(shù)據(jù)庫(kù)的索引有了解過(guò)嗎,有哪些優(yōu)缺點(diǎn)
  3. 算法題:rotate一次的數(shù)組,找target,例如 [3,4,0,1,2] 找4所在的位置,如果不存在返回-1,要求logn時(shí)間 (LeetCode medium原題,直接二分即可,寫代碼之前記得問(wèn)有沒有重復(fù)元素這類二分可能會(huì)遇到坑,面試官很nice 很樂意多交流,另外ms的面試風(fēng)格,一定要自己想test case,盡可能的覆蓋所有邊界條件)

現(xiàn)場(chǎng)面試

電話面試之后會(huì)約現(xiàn)場(chǎng)面試,通常會(huì)安排5-6輪的面試,每輪一小時(shí),前3輪是基礎(chǔ)面,面試結(jié)束后面試官商量決定要不要進(jìn)行后續(xù)的面試,當(dāng)然如果表現(xiàn)比較差,也可能在某一輪直接結(jié)束。

1面

  1. 算法題:最大子數(shù)組和 (LeetCode原題,n時(shí)間1空間)
  2. 算法題:兩個(gè)長(zhǎng)度為m的無(wú)序數(shù)組A,B,對(duì)于任意不相交的區(qū)間ab和cd,val[ab]=sum(A,a,b)- sum(B,a,b),val[cd] = sum(B,c,d)- sum(A,c, d)
    求abcd,使val[ab] + val[cd]最大 (這題比較難,先寫了個(gè)暴力解法,然后和面試官逐步討論優(yōu)化,沒有給出最優(yōu)解法)
  3. n個(gè)準(zhǔn)確率為50%的分類器,可以通過(guò)什么方式提升準(zhǔn)確嗎?60%呢?如果可以,提升到96%需要多少個(gè)?(這題在臺(tái)大林軒田的機(jī)器學(xué)習(xí)課程里有提到過(guò))
  4. xgb和gbdt的區(qū)別 (幾乎必問(wèn)的題目,提前準(zhǔn)備一下,說(shuō)的要有條理,有哪些算法優(yōu)化,哪些工程實(shí)現(xiàn)優(yōu)化,可以適當(dāng)擴(kuò)展提一下lgb)
  5. 前序遍歷 中序遍歷 后序遍歷 知道那些可以恢復(fù)二叉樹,只知道前序和后序可以嗎?原因?

2面

  1. 無(wú)序數(shù)組找第k大的數(shù) (經(jīng)典題目了,這類題目可以表現(xiàn)一下思考過(guò)程,比如最開始最直觀的做法是排序,然后優(yōu)化的思路,不需要全部排序,部分有序就可以了,最后能給《算法導(dǎo)論》里的n時(shí)間解法當(dāng)然最好了,給不到的話給個(gè)nlogn的解法也還可以吧)
  2. 一個(gè)字符串 切分成多個(gè)回文串,返回所有可能,如aab要返回 [[aa,b],[a,a,b]] (印象里應(yīng)該是LeetCode原題)

3面

  1. 實(shí)現(xiàn)atoi 考慮所有情況 (LeetCode medium,記得考慮所有異常情況,包括溢出)
  2. 實(shí)際業(yè)務(wù)問(wèn)題,如何屏蔽搜索結(jié)果的成人內(nèi)容展示 (面試官一直提示說(shuō)各種方法都可以,當(dāng)時(shí)的思路被局限在了模型上。這類業(yè)務(wù)問(wèn)題的通用套路:先考慮簡(jiǎn)單的規(guī)則,把所有可能覆蓋的規(guī)則描述一遍;然后拓展到模型,想一些規(guī)則cover不到的case,但是模型有能力cover)

4面

  1. 細(xì)聊項(xiàng)目,里面的bad case怎么解,具體的優(yōu)化方向 (這里主要考察的還是對(duì)自己項(xiàng)目的思考深度,面試官可能會(huì)挑戰(zhàn),你這個(gè)項(xiàng)目用一個(gè)簡(jiǎn)單的規(guī)則就可以解決,為什么要用模型。需要準(zhǔn)備好可以應(yīng)對(duì)挑戰(zhàn)的典型case,能說(shuō)服面試官。另外就是項(xiàng)目收益的評(píng)估問(wèn)題,怎么評(píng)估模型正向,模型怎么上線)

5面 aa

  1. 聊人生聊理想 (對(duì)未來(lái)要做的方向的考慮,為什么工作了一年就想跳槽,需要準(zhǔn)備一個(gè)合適的跳槽理由,然后說(shuō)一下目前的想法,一定要主動(dòng)去詢問(wèn)面試官,怎么樣合理的做職業(yè)規(guī)劃,面試官會(huì)很耐心的解答)
  2. 估算北京地鐵有多少司機(jī) (《編程珠璣》里有一章專門講估算的)

轉(zhuǎn)廣告推薦 加面aa

面完bing搜索之后,hr告知面試通過(guò)但是組內(nèi)沒有HC了,幫我轉(zhuǎn)了bing的推薦組

  1. 漢字?jǐn)?shù)字轉(zhuǎn)數(shù)字,如 一百二十轉(zhuǎn)化成120
  2. 聊簡(jiǎn)歷上的項(xiàng)目,比較宏觀,為什么做這個(gè)項(xiàng)目,有沒有什么數(shù)據(jù)支撐

滴滴算法面經(jīng)(定價(jià)策略算法)

校招時(shí)候就面過(guò)滴滴,整體感覺滴滴是面試體驗(yàn)最好的,面試官是以一種平等的態(tài)度來(lái)交流技術(shù),即使有時(shí)候卡殼也會(huì)慢慢提醒(兩次都拿了offer)

安利一下 ??皖}霸
https://www.nowcoder.com/activity/oj
最近各大廠的視頻面試都用??推脚_(tái),要求編譯運(yùn)行,難度比白板寫提升了,多寫寫練練手幫助很大,面試時(shí)候?qū)憘€(gè)bug free的代碼,拿到offer的概率大大提升

1面

  1. 項(xiàng)目,針對(duì)項(xiàng)目中的細(xì)節(jié)詢問(wèn)比較多,比如怎么抽象問(wèn)題,損失函數(shù)怎么定的,為什么要選這個(gè)損失函數(shù),正負(fù)樣本怎么來(lái)的,怎么驗(yàn)證結(jié)果
  2. 算法題:求樹深 時(shí)間復(fù)雜度(LeetCode easy,時(shí)間復(fù)雜度是O(N),因?yàn)橐獟咭槐樗械墓?jié)點(diǎn))
  3. 算法題:矩陣,只能向右或向下,求最大路徑 時(shí)間空間復(fù)雜度(LeetCode easy 入門級(jí)的動(dòng)態(tài)規(guī)劃,時(shí)間復(fù)雜度O(M*N),空間復(fù)雜度O(N))
  4. linux基礎(chǔ):awk實(shí)現(xiàn)left join(算法工程師少不了的基本功,awk sed建議學(xué)一下,實(shí)際工作中也是很有用的)
  5. 機(jī)器學(xué)習(xí)基礎(chǔ):boosting和bagging的區(qū)別 (bagging就是投票策略,會(huì)降低方差,減小過(guò)擬合風(fēng)險(xiǎn),boosting是降低偏差的策略,可以描述一下 Adaboost和gradient boost的區(qū)別)
  6. 梯度下降的更新公式,和梯度提升的區(qū)別 (這里可以繼續(xù)結(jié)合boosting來(lái)說(shuō),梯度提升是在函數(shù)空間的,而梯度下降是在參數(shù)空間的)

2面

  1. 機(jī)器學(xué)習(xí)基礎(chǔ):xgb和gbdt區(qū)別(基本是必考題目,從主要的優(yōu)化點(diǎn)說(shuō)起,xgb是二階泰勒展開,gbdt是一階,可以類比牛頓法和梯度下降法的區(qū)別,牛頓法收斂更快,但是由于更快逼近目標(biāo),會(huì)增大過(guò)擬合風(fēng)險(xiǎn),因此在目標(biāo)函數(shù)里有一個(gè)顯示的懲罰項(xiàng),與葉子節(jié)點(diǎn)數(shù)和葉子節(jié)點(diǎn)的權(quán)重有關(guān),來(lái)控制模型復(fù)雜度;另外還有分裂節(jié)點(diǎn)的選擇,xgb怎么選取最優(yōu)分裂節(jié)點(diǎn),有哪些加速的優(yōu)化之類的知識(shí))
  2. 算法題:給一個(gè)字符串和一個(gè)k,要求找到不超過(guò)k個(gè)不同字符的最長(zhǎng)子串的長(zhǎng)度,on時(shí)間(LeetCode上的medium或者是偏簡(jiǎn)單的hard題目,用劃窗的思路做)
  3. 概率題:2人拋硬幣,正面贏,反面讓另一個(gè)人拋,求先拋的人獲勝的概率
  4. 深度學(xué)習(xí)基礎(chǔ):cnn和全連接的區(qū)別(參數(shù)共享,降低運(yùn)算量)
  5. lstm有什么新的改進(jìn),替代(針對(duì)rnn來(lái)說(shuō) 通過(guò)門電路把連乘轉(zhuǎn)換成了連加,一定程度上緩解了梯度消失問(wèn)題,梯度爆炸可以直接clip不需要考慮,另外就是廣度了,lstm的應(yīng)用和改進(jìn))

3面

  1. 預(yù)測(cè)一個(gè)城市不同區(qū)域一天的發(fā)單量,和滴滴業(yè)務(wù)相關(guān),設(shè)計(jì)一些調(diào)度策略
  2. 預(yù)測(cè)一個(gè)城市不用區(qū)域的降水量(這個(gè)可以作為前一道題的特征)
  3. 判斷用戶感知是否順路,給出思路(怎么獲取訓(xùn)練數(shù)據(jù),怎么去判斷用戶的感知到底順不順路,找一些簡(jiǎn)單的規(guī)則)
  4. 概率,拋硬幣,連續(xù)兩次正面向上為止,求次數(shù)期望

猿輔導(dǎo)算法面經(jīng)(OCR算法)

作者:記記面經(jīng)而已

寫在前面

猿輔導(dǎo)之前經(jīng)歷了大廠3連跪,剛開始社招的時(shí)候沒有準(zhǔn)備好,其實(shí)心里是很慌的。
而且聽說(shuō)猿輔導(dǎo)的面試難度也不低,所以沒有想到能順利過(guò)面試

面試前還是要好好刷題
??皖}霸 https://www.nowcoder.com/activity/oj 搞起來(lái)

正片分割線


1面

先自我介紹,大概1分鐘左右,準(zhǔn)備延伸到項(xiàng)目開始講的時(shí)候,面試官直接打斷了,說(shuō)先來(lái)做題吧
算法題1:
輸入 鏈表 453612 target 3
輸出 451236 就是把target后面的小于target的數(shù)移到target前,其余都保持相對(duì)關(guān)系,返回鏈表頭節(jié)點(diǎn)
算法題2:應(yīng)該是leetcode pathsum
輸入 二叉樹,target
輸出 所有從根節(jié)點(diǎn)到葉子結(jié)點(diǎn)的和為target的path
兩個(gè)算法題基本是在easy到medium之間的,刷過(guò)題的話應(yīng)該都能秒解,題目1一定注意邊界條件,面試官看的還是很細(xì)的,給我指出了一處問(wèn)題,修改之后就沒有問(wèn)題了

介紹深度學(xué)習(xí)項(xiàng)目
面試官主要的關(guān)注點(diǎn)在訓(xùn)練數(shù)據(jù),畢竟標(biāo)注數(shù)據(jù)是稀缺資源。這類問(wèn)題要著重準(zhǔn)備,即使面試官不問(wèn),也可以主動(dòng)提,難點(diǎn)是標(biāo)注數(shù)據(jù)太少了,然后是怎么去做數(shù)據(jù)增廣的

2面

介紹深度學(xué)習(xí)項(xiàng)目:為什么用深度學(xué)習(xí)解,出發(fā)點(diǎn)是什么,模型最后學(xué)到了什么內(nèi)容。(好像在leader面的時(shí)候會(huì)比較關(guān)注一個(gè)項(xiàng)目的出發(fā)點(diǎn),有沒有數(shù)據(jù)佐證,說(shuō)明不是為了用深度學(xué)習(xí)、為了炫技而用深度學(xué)習(xí),建議提前準(zhǔn)備這類問(wèn)題,可以在介紹項(xiàng)目的時(shí)候主動(dòng)說(shuō),算是一個(gè)加分項(xiàng))

hmm 維特比算法(NLP相關(guān)必考了,這里的應(yīng)用點(diǎn)是解決識(shí)別準(zhǔn)確率)

實(shí)現(xiàn)一個(gè)不考慮轉(zhuǎn)移概率的維特比,要求給出topn的路徑 (現(xiàn)場(chǎng)寫代碼,用了堆實(shí)現(xiàn)的,沒太準(zhǔn)備好,寫的比較亂)

3面 hr

優(yōu)缺點(diǎn)
最有成就感的項(xiàng)目,為什么有成就感,遇到什么問(wèn)題,怎么解決


總結(jié)

  1. 刷題 刷題,記得總結(jié)分類,避免同類型題不會(huì)做
  2. 項(xiàng)目要好好準(zhǔn)備,和校招很大的區(qū)別是,面試官會(huì)問(wèn)為什么做這個(gè)項(xiàng)目,前期的調(diào)研和數(shù)據(jù)支撐非常重要,這個(gè)問(wèn)題回答不好的話,整個(gè)項(xiàng)目是沒法讓面試官信服的。還有項(xiàng)目中一些工業(yè)界常見的問(wèn)題,前面提到的訓(xùn)練數(shù)據(jù)量不足的問(wèn)題,還有模型訓(xùn)練時(shí)間,迭代周期的問(wèn)題,如果迭代速度慢,怎么解決
  3. 關(guān)于方向的問(wèn)題,工作一年還沒有定型,所以不要擔(dān)心換方向的問(wèn)題,nlp面cv,推薦完全沒問(wèn)題。面試官更看重的是:基礎(chǔ)扎實(shí),工程實(shí)現(xiàn)能力強(qiáng)

小米算法面經(jīng)(推薦算法)

寫在前面

猿輔導(dǎo)面試通過(guò)后,也算有了一些信心,差不多找到面試的狀態(tài)了,后續(xù)的面試也順利了很多

剛開始準(zhǔn)備面試的時(shí)候,多刷刷面經(jīng),有了幾次面試經(jīng)歷之后,要自己多復(fù)盤,想想面試的時(shí)候,什么地方回答的不好(主要是項(xiàng)目經(jīng)歷的部分)

算法題方面就算是硬實(shí)力了,需要好好刷題
??皖}霸 https://www.nowcoder.com/activity/oj 搞起來(lái)

正片分割線


一面

  1. 先自我介紹,我的習(xí)慣是經(jīng)歷簡(jiǎn)單介紹一下,然后自然轉(zhuǎn)向準(zhǔn)備最充分的一個(gè)項(xiàng)目開始詳細(xì)講,面試官感興趣的話最好,不感興趣的話會(huì)直接打斷的。主要介紹了項(xiàng)目的背景,難點(diǎn)和解決方案,面試官關(guān)心的點(diǎn)主要集中在問(wèn)題抽象和損失函數(shù),講清楚為什么這么做,項(xiàng)目大概聊了半小時(shí)左右
  2. 機(jī)器學(xué)習(xí)基礎(chǔ):推導(dǎo) lr,寫出loss和梯度(比起推導(dǎo)svm來(lái)說(shuō)簡(jiǎn)直就是送分題,要是寫不出來(lái)的話估計(jì)會(huì)直接掛,基礎(chǔ)還是要好好準(zhǔn)備)
  3. 算法 鏈表對(duì)折 1 2 3 4 5 變成 1 5 2 4 3
    拆解一下題目,(靈活)
    a. 找到鏈表的中點(diǎn) ??皖}霸: 鏈表中倒數(shù)第k個(gè)節(jié)點(diǎn) 是找中點(diǎn)的復(fù)雜版,都是雙指針解法
    b. 翻轉(zhuǎn)后半段鏈表 ??皖}霸: 翻轉(zhuǎn)鏈表
    c. 合并兩個(gè)鏈表 ??皖}霸: 合并兩個(gè)有序鏈表 是復(fù)雜版

二面

項(xiàng)目介紹

  1. 先介紹項(xiàng)目,主要聊了項(xiàng)目背景和收益,收益具體怎么衡量,項(xiàng)目如何上線生效
  2. 算法題 m*n的二維數(shù)組,只能往右或者往下,找最短路徑,n空間 ??皖}霸: 矩陣的最小路徑和
  3. 有了解過(guò)設(shè)計(jì)模式嗎?(答了常見的工廠模式和單例模式,對(duì)應(yīng)的應(yīng)用場(chǎng)景,簡(jiǎn)單扯了一下裝飾器模式,也是看xgb源碼看到的,其實(shí)不會(huì)用)
  4. 系統(tǒng)設(shè)計(jì)需要注意什么,如何設(shè)計(jì)一個(gè)系統(tǒng),系統(tǒng)性能如何評(píng)估,需要考慮哪些指標(biāo)(考察點(diǎn)應(yīng)該是線上的系統(tǒng)了,指標(biāo)比如內(nèi)存使用率,qps,99 39 49時(shí)間之類的)
  5. 之前幫阿里云錄制過(guò)一些深度學(xué)習(xí)的入門課程,簡(jiǎn)單聊了一下相關(guān)的內(nèi)容

三面

  1. 介紹xgb
    a. gbdt和xgb的區(qū)別(居然沒有問(wèn)lgb)
    b. 怎么選最優(yōu)分裂節(jié)點(diǎn),怎么加速,預(yù)排序有什么作用,怎么分箱,等寬還是等深
    c. 怎么處理缺失值的,預(yù)測(cè)時(shí)候缺失值怎么辦
  2. 為什么離職,希望一份什么樣的工作
  3. 有沒有什么問(wèn)題想要了解的(問(wèn)了業(yè)務(wù)場(chǎng)景 工作內(nèi)容)

總結(jié)

整個(gè)面試下來(lái),感覺問(wèn)的基礎(chǔ)題偏多,機(jī)器學(xué)習(xí)的內(nèi)容偏多,基本沒怎么聊深度學(xué)習(xí)相關(guān)的事情。工程方面的問(wèn)題也有涉及,感覺應(yīng)該是推薦系統(tǒng)早期的建設(shè)階段,更多的工作內(nèi)容偏向于工程落地實(shí)現(xiàn)


百度算法9.27三面

一面:50分鐘

1、自我介紹

2、問(wèn)實(shí)習(xí),問(wèn)得挺細(xì)的

3、開始擼代碼:第一題:劍指offer上面的~數(shù)組中出現(xiàn)次數(shù)超過(guò)一半的數(shù)字,當(dāng)時(shí)給了兩種解法,面試官問(wèn)兩種有什么區(qū)別,就說(shuō)了時(shí)間復(fù)雜度和空間復(fù)雜度不一樣;第二題:求解完全二叉樹節(jié)點(diǎn)個(gè)數(shù),要求是必須要用到完全二叉樹的性質(zhì)

二面:一個(gè)多小時(shí)

1、問(wèn)實(shí)習(xí)、問(wèn)項(xiàng)目,問(wèn)得更細(xì)

2、撕代碼:大致的意思就是百度需要做一個(gè)檢索的工作,我需要寫的就是通過(guò)給定的一級(jí)目錄id,輸出所有的子目錄id

3、問(wèn)機(jī)器學(xué)習(xí)的,SVM,LR,xgboost原理

4、激活函數(shù)的種類,飽和激活函數(shù)有哪些,缺點(diǎn)是什么?BN的原理以及效果?

5、深度學(xué)習(xí)過(guò)擬合欠擬合如何解決?

三面:四十分鐘:

1、問(wèn)實(shí)習(xí)問(wèn)項(xiàng)目

2、考了一道智力題

3、開始談人生聊理想:(1)你的缺點(diǎn)是什么?(2)你最大的遺憾是什么?(3)你曾經(jīng)放棄過(guò)什么?(4)曾經(jīng)有什么事你特別想去做但是最后放棄了?(5)曾經(jīng)有什么事你特別想去做但是某個(gè)時(shí)間段你放棄了然而最后你還是堅(jiān)持下來(lái)了?(4)假如領(lǐng)導(dǎo)必須要你做一件你不想去做的事你該怎么辦?(5)對(duì)未來(lái)的規(guī)劃是什么樣的?(6)目前找工作的情況怎么樣?(7)期望地點(diǎn)是哪里?

4、有什么需要問(wèn)我的?直接說(shuō)面試官的回答吧:這次招聘(說(shuō)是招聘我覺得幾乎沒有hc了)是聯(lián)合招聘,需要比較所有人的面試成績(jī)?nèi)缓髶駜?yōu)錄取。


58nlp算法面經(jīng)

找了在58NLP工作的本科同學(xué)內(nèi)推,估計(jì)HR給忘了,第一批沒內(nèi)推上,只趕上了第二批筆試,當(dāng)時(shí)已經(jīng)開獎(jiǎng)了好多人了,感覺坑位不多。

筆試:9.14筆試,20選擇+3代碼,一個(gè)半小時(shí),感覺時(shí)間有點(diǎn)緊,選擇題十幾分鐘草草了事,抓緊時(shí)間搞代碼,結(jié)果三道全是簽到題,10分鐘3/3,一共半小時(shí)交卷,感覺58已經(jīng)招滿人了

一面二面:9.17

一面:

1.自我介紹
2.今后的事業(yè)規(guī)劃、研究方向
3.項(xiàng)目1:為什么選擇這種模型,有嘗試過(guò)其他模型嗎
4.BERT的優(yōu)缺點(diǎn)
5.PTM都了解哪些,BERT與GPT區(qū)別
6.單項(xiàng)與雙向在實(shí)際訓(xùn)練時(shí)有差別嗎
7.bert的mask會(huì)帶來(lái)什么缺點(diǎn)嗎
8.項(xiàng)目2:句對(duì)匹配任務(wù)
9.每次查詢都要與庫(kù)里所有的數(shù)據(jù)做計(jì)算,有考慮過(guò)優(yōu)化么
10.手撕代碼 :
(1)經(jīng)典DP
(2)判斷兩個(gè)鏈表是否相交
ps:沒給反問(wèn)機(jī)會(huì)

二面:

1.自我介紹
2.挑一個(gè)比較重點(diǎn)的項(xiàng)目開講
3.知識(shí)庫(kù)有多大,數(shù)據(jù)是分層存儲(chǔ)的嗎
4.數(shù)據(jù)是如何收集的
5.問(wèn)題會(huì)有子問(wèn)題嗎
6.準(zhǔn)確率怎么驗(yàn)證的
7.效果會(huì)跟數(shù)據(jù)集有關(guān)系嗎
8.sentence pair怎么改進(jìn)的
9.CNN與RNN的區(qū)別
10.Transformer原理
11.注意力機(jī)制有哪些種類,本身原理上起了什么作用
12.怎么解決過(guò)擬合問(wèn)題
13.BN在原理上怎么解決過(guò)擬合
14.常用損失函數(shù)有哪些
15.回歸問(wèn)題主要用哪些損失函數(shù)
16.隱馬爾可夫了解么
17.數(shù)據(jù)不平衡怎么處理
18.數(shù)據(jù)不平衡的損失函數(shù)有哪些
19.交叉熵是什么原理
20.系統(tǒng)搭建怎么搭建的
21.項(xiàng)目3介紹
22.評(píng)價(jià)體系是什么
23.詞向量有哪些方法
24.分詞了解么
25.工作上的規(guī)劃,地點(diǎn)有選擇嗎
26.工程上的開發(fā)與落地有經(jīng)驗(yàn)嗎
27.知識(shí)蒸餾是什么,通過(guò)什么方式來(lái)簡(jiǎn)化,比如albert,具體原理是什么

HR面:9.27

字節(jié)電商N(yùn)LP一面涼經(jīng)

一面 8.19 電商部門NLP崗

1.自我介紹
2.項(xiàng)目介紹
3.word2vec原理,如何得到詞向量
4.如何分詞,分詞原理
5.競(jìng)賽介紹
6.lightGBM是什么模型,GBDT原理
7. 數(shù)據(jù)集分成幾份,每份的作用是什么
8.怎么知道模型過(guò)擬合了
9.如何應(yīng)對(duì)過(guò)擬合
10.dropout是什么
11.過(guò)擬合什么情況下比較容易產(chǎn)生
12.tensorflow用過(guò)么,pytorch用來(lái)作過(guò)什么事情
13.場(chǎng)景題:現(xiàn)在有一些新聞,包含軍事、體育、經(jīng)濟(jì)等,想分出它屬于哪個(gè)類,該怎么做
14.能講下BERT么

15.手撕代碼:二叉樹路徑上和為target的最長(zhǎng)路徑


依圖NLP算法涼經(jīng)

一面:9.4 新加坡部門跨國(guó)面試

1.是保研嗎
2.實(shí)習(xí)
3.項(xiàng)目1
4.BERT為什么有效,與其他模型相比呢
5.Transformer優(yōu)點(diǎn)
6.數(shù)據(jù)源如何來(lái)的,數(shù)據(jù)更新如何解決
7.embedding方式有哪些
8.word2vec訓(xùn)練時(shí)出現(xiàn)過(guò)問(wèn)題嗎,比如訓(xùn)練后的詞之間的相似性不準(zhǔn)
9.爬蟲框架用過(guò)哪些
10.手撕代碼
(1)手寫字典樹
(2)二叉樹的遍歷 遞歸非遞歸

二面:9.8

1.自我介紹
2.項(xiàng)目1
3.粗篩能過(guò)濾多少數(shù)據(jù)
4.評(píng)測(cè)過(guò)第一步的性能么
5.BERT原理,
6.正則化是什么,LN是什么,作用是什么
7.過(guò)擬合手段有哪些
8.Dropout原理
9.hyperscan的原理是什么
10.模型預(yù)測(cè)錯(cuò)誤的數(shù)據(jù),為什么會(huì)錯(cuò),分析過(guò)么
11.sentence pairs模型中,為什么不直接用score排序
12.為什么要選用這種模型
13.自定義損失函數(shù)是什么,為什么要用這個(gè)
14.手撕代碼,leetcode.33
結(jié)果:掛了 代碼沒寫好只記得offer上有差不多的題,現(xiàn)場(chǎng)寫的時(shí)候有些緊張,腦袋一片空白,轉(zhuǎn)不動(dòng)了,寫了20分鐘磕磕絆絆才寫出來(lái),第二天一查結(jié)果 果然掛了


貝殼NLP算法面經(jīng)

一面

1.LDA基礎(chǔ)知識(shí)
2.LSTM梯度消失/爆炸
記不清了

二面

1.自我介紹
2.項(xiàng)目介紹
3.LDA主題數(shù)目確定
4.Gibbs采樣和變分推斷
5.GIbbs優(yōu)化目標(biāo)是什么
6.Gibbs采樣與變分推斷的優(yōu)缺點(diǎn)
7.常用的模型(LSTM+BERT),訓(xùn)練語(yǔ)料
8.BERT原理
9.Bert與LSTM比較
10.樣本不平衡的處理方法
11.了解NER么
12.統(tǒng)計(jì)類模型了解么 陰馬
13.編程語(yǔ)言用什么,C++會(huì)么
14.embedding的方法(word2vec \glove\ fasttext)
15.glove 與word2vec的區(qū)別
16.LR,SVM與XGboost了解么,介紹一下
17.GBDT,Xgboost的區(qū)別,Xgboost分布式計(jì)算是計(jì)算什么
18.代碼:寫快排

HR面

1.實(shí)習(xí)經(jīng)歷,
2.說(shuō)一個(gè)印象最深的項(xiàng)目,收獲
3.今后還做這個(gè)方向么
4.目前關(guān)注的公司
5.對(duì)貝殼了解么
6.可以實(shí)習(xí)么
7.在哪個(gè)校區(qū)
8.反問(wèn)(兩周之內(nèi)給結(jié)果)


字節(jié)算法工程師-頭條生態(tài):一面涼經(jīng)

1. 面試安排:長(zhǎng)時(shí)間(10余天)的簡(jiǎn)歷審核,請(qǐng)求內(nèi)推人幫忙查詢進(jìn)度后,立刻收到了面試通知(直接免筆試);

2. 面試環(huán)境:因?yàn)樵趪?guó)外,視頻面試有一定的延遲、回聲;面試官全程佩戴口罩,看不出喜怒 ??;

3. 面試內(nèi)容:

  • 問(wèn)項(xiàng)目:樓主主要做圖神經(jīng)網(wǎng)絡(luò)、NLP相關(guān)內(nèi)容。面試官只詢問(wèn)了關(guān)于圖神經(jīng)網(wǎng)絡(luò)的項(xiàng)目,過(guò)程約10分鐘,最后以“圖神經(jīng)網(wǎng)絡(luò)這塊我也不太了解,我們來(lái)問(wèn)點(diǎn)基礎(chǔ)的 ”,轉(zhuǎn)到下一話題;

  • 問(wèn)基礎(chǔ):約10分鐘

  • LR的公式、原理;

  • BN的原理、 作用、訓(xùn)練與預(yù)測(cè)時(shí)的差異;

  • 如何判斷Overfitting的產(chǎn)生,如何減輕Overfiting;L1 Norm 和 L2 Norm的差異,為什么L1 Norm能獲得稀疏解;

4. 寫題:約20分鐘

  • 反轉(zhuǎn)鏈表中偶數(shù)位置的值,例如1-2-3-4-5-6-7 變?yōu)?1-6-3-4-5-2-7;

  • 寫出主要部分,但局部有細(xì)節(jié)瑕疵;

  • 從K個(gè)整數(shù)中,組合出能被3整除的最大數(shù),例如: [1, 2, 3],組合出能最大能被3整除的數(shù)是321;

  • 給出回朔法的解法,面試官表示并非最優(yōu)解

5 反問(wèn):約5分鐘

  • 問(wèn)業(yè)務(wù),答 曰主做推薦;問(wèn)圖神經(jīng)網(wǎng)絡(luò)是否在你們部門有應(yīng)用,答曰部門有人在做,我說(shuō)那樣便好,有所契合;

  • 問(wèn)既然做推薦,為什么不問(wèn)推薦相關(guān)的知識(shí),我有所了解;面試官答曰,簡(jiǎn)歷上沒寫,沒法問(wèn);

感覺不難,但還是掛了,有些遺憾... 補(bǔ)投了字節(jié)的一些實(shí)習(xí),再接再厲吧??

算法崗秋招面經(jīng)總結(jié)

面經(jīng)總結(jié):

  1. 項(xiàng)目相關(guān)提問(wèn)
  2. 機(jī)器學(xué)習(xí)基礎(chǔ)相關(guān)提問(wèn)
  3. 排序,操作系統(tǒng),數(shù)據(jù)結(jié)構(gòu),計(jì)網(wǎng)
  4. 編程語(yǔ)言,大數(shù)據(jù)相關(guān)
  5. 手撕
  6. 場(chǎng)景題,開放題

寫在前面

本人秋招期間,看了許多??蜕系?a href="/jump/super-jump/word?word=%E9%9D%A2%E7%BB%8F" target="_blank">面經(jīng),收益匪淺。如今本人秋招已經(jīng)接近尾聲了,在此寫一下秋招總結(jié),回饋???。

首先說(shuō)一下本人背景:算法崗,科班,本碩都是某 985。有一段兩個(gè)半月的大廠非核心部門實(shí)習(xí)經(jīng)歷,一篇冷門方向的 SCI 一區(qū)期刊論文,一個(gè)小比賽的 TOP5。(實(shí)習(xí)比賽論文都有,但每樣都一般般,所以秋招也是十分艱難)

秋招結(jié)果:投遞了大大小小 30 多家公司,目前是拿到一份意向書。

意向書:字節(jié)(經(jīng)歷了一次筆試掛,一次三面掛,再被撈三面后上岸的)

泡池子:京東物流,華為,360,OPPO(其中 360 和 OPPO 已經(jīng)開過(guò)部分獎(jiǎng)了,我應(yīng)該排序比較靠后或者掛了)

終面掛或者排序掛:網(wǎng)易互聯(lián)網(wǎng),百度提前批,拼多多拼越計(jì)劃

二面掛:阿里(二面完后很久狀態(tài)都沒改變),百度正式批,騰訊 PCG

一面掛:美團(tuán)快手

進(jìn)行中:騰訊音樂,網(wǎng)易互娛

還有一些投了之后沒消息或者筆試完后沒消息,這里就不列出來(lái)了。

面經(jīng)總結(jié)

1. 項(xiàng)目相關(guān)提問(wèn)

項(xiàng)目相關(guān)提問(wèn)我只列舉一下可能對(duì)大家有借鑒意義的問(wèn)題。

1. 有沒有觀察單個(gè)特征和標(biāo)簽之間的聯(lián)系

2. 每次加入一個(gè)特征,如果效果沒有提升則不使用該特征。那怎么處理特征組合的問(wèn)題。(組合后可能變好或者差)

3. ID embedding 怎么做

4. 項(xiàng)目中 Embedding 學(xué)習(xí)到的是什么,特征交叉的作用是什么

5. 為什么使用 DeepFM 來(lái)進(jìn)行特征交叉

6. DeepFM 和 Deep&Wide 區(qū)別,寫一下 FM 公式,DeepFM 優(yōu)點(diǎn)

7. DeepFM 只是簡(jiǎn)單的交叉,其他復(fù)雜點(diǎn)的對(duì)特征進(jìn)行交叉的網(wǎng)絡(luò)了解嗎

8. 你說(shuō)你發(fā)現(xiàn)了訓(xùn)練集和測(cè)試集分布不一致的問(wèn)題。你是怎么發(fā)現(xiàn)這個(gè)問(wèn)題的,怎么診斷定位,除了可視化還有沒有其他直觀的指標(biāo)

1. 對(duì)于一個(gè)算法課題,你覺得最重要的幾個(gè)環(huán)節(jié)有哪些。

2. 項(xiàng)目遇到了什么困難,如何解決?

3. 項(xiàng)目取得了啥效果,項(xiàng)目的核心提升是哪些操作

4. 項(xiàng)目中使用了哪些特征?如果要繼續(xù)改進(jìn)的話,還可以使用哪些特征?

5. 有沒有使用其他更好的算法來(lái)解決問(wèn)題

6. 你覺得你實(shí)習(xí)做的項(xiàng)目還有哪些地方可以做優(yōu)化

7. 項(xiàng)目遇到瓶頸,反映在業(yè)務(wù)上是怎么樣的,你要怎么去解決這個(gè)問(wèn)題

8. 有沒有調(diào)研過(guò)業(yè)界的做法

1. 你的比賽任務(wù),四分類,評(píng)估指標(biāo)用 auc 合理嗎
2. 比賽的 LSTM 和 CNN 是怎么用的,為什么可以用。講一下 RNN 和 CNN 的區(qū)別,為啥在你這個(gè)比賽中 LSTM 比 CNN 效果好

2. 機(jī)器學(xué)習(xí)基礎(chǔ)相關(guān)提問(wèn)

特征相關(guān)

1. 講一下特征工程

2. 類別特征編碼方式有哪些?如何解決 target encoding 的 target leakage?count encoding 有個(gè)缺點(diǎn):測(cè)試集和訓(xùn)練集分布不同,導(dǎo)致特征頻率不一樣。怎么解決?

3. 如何進(jìn)行特征選擇

4. 項(xiàng)目中如何做交叉特征,為什么這樣交叉,基于業(yè)務(wù)意義?

5. 為什么需要計(jì)算特征重要性,計(jì)算特征重要性的方法有哪些

6. 連續(xù)特征怎么分箱,如何判斷分箱的結(jié)果是好是壞

7. 特征平滑方法有哪些

8. 怎么處理長(zhǎng)尾問(wèn)題,從樣本,模型的角度來(lái)看,從優(yōu)化器的角度來(lái)看

9. 什么樣的 ID 經(jīng)過(guò) Embedding 后可能有效,如何篩選有效的 ID。有些 ID 數(shù)量級(jí)很大,怎么處理

神經(jīng)網(wǎng)絡(luò)相關(guān)

1. 神經(jīng)網(wǎng)絡(luò)如何跳出局部最優(yōu)

2. 神經(jīng)網(wǎng)絡(luò)如何緩解過(guò)擬合, 講一下 dropout,dropout 訓(xùn)練和預(yù)測(cè)的時(shí)候有什么不同, dropout 操作類似于機(jī)器學(xué)習(xí)中的什么操作

3. batch normalization 和 layer normalization 區(qū)別,寫一下 bn 公式

4. 優(yōu)化器了解哪些,adam 相對(duì) sgd 的改進(jìn)

5. 激活函數(shù)的作用,各個(gè)激活函數(shù)的優(yōu)缺點(diǎn)

6. tf 處理特征的類有沒有了解( tf.feature_column)

7. 講一下 word2vec,有哪兩種形式,詞的數(shù)量比較多,分類時(shí)怎么優(yōu)化, word2vec 怎么做負(fù)采樣

8. item2vec 有沒有了解

9. 多分類如果有 10000 類別,怎么優(yōu)化

10. graph embedding 了解嗎,神經(jīng)網(wǎng)絡(luò)做 graph embedding 了解嗎

11. 講一下圖神經(jīng)網(wǎng)絡(luò)

12. tf embedding_lookup 原理

13. 文本分類有了解嗎,說(shuō)一下 textcnn

14. 如何緩解 RNN 的梯度消失

15. 講一下 LSTM。LSTM 為啥能緩解梯度爆炸和梯度消失?LSTM 激活函數(shù)可以使用 relu 嗎

16. 排序算法了解嗎?說(shuō)了快排,歸并,冒泡等(后面發(fā)現(xiàn)好像問(wèn)的是 ctr 中的排序算法

17. 了解哪些推薦算法,nlp 的預(yù)訓(xùn)練模型了解嗎,attention, transformer,bert 了解嗎

18. CNN 和 RNN 在實(shí)際使用中有哪些優(yōu)缺點(diǎn)?NLP 中,什么情況下使用 CNN,什么情況下使用 RNN?

19. 神經(jīng)網(wǎng)絡(luò)權(quán)重全 0 初始化會(huì)有什么問(wèn)題?應(yīng)該怎樣初始化?講講 Xavier 初始化

樹模型相關(guān)

1. 樹模型怎么處理連續(xù)特征

2. 隨機(jī)森林的隨機(jī)性體現(xiàn)在哪里?boosting 和 bagging 區(qū)別。隨機(jī)森林是不是樹越多越好。隨機(jī)森林采樣是有放回采樣還是無(wú)放回采樣

3. c4.5 用來(lái)解決 ID3 什么問(wèn)題,gbdt 和 rf 分別是集成的什么思想,解決什么誤差

4. GBDT 怎么生成一個(gè)新的樹,怎么確定葉子節(jié)點(diǎn)的權(quán)重

5. 隨機(jī)森林和 xgboost 那個(gè)樹的深度更深

6. XGBoost 和 GBDT 的不同,為啥 XGBoost 選擇決策樹作為基分類器?

7. XGBoost 和 GBDT 分裂葉子節(jié)點(diǎn)的不同之處,寫一下 XGBoost 計(jì)算節(jié)點(diǎn)分裂收益的公式

8. XGBoost 如果損失函數(shù)沒有二階導(dǎo),該怎么辦

9. GBDT 和 XGBoost 用什么基分類器,如何分裂葉子節(jié)點(diǎn),處理分類問(wèn)題和回歸問(wèn)題有啥不同

10. Lightgbm 相比于 XGBoost 的改進(jìn),LightGBM 為什么比 GBDT 快。LightGBM 怎么做并行

11. 看過(guò) XGBoost, Lightgbm 等的源碼沒?(沒有。。)

12. 講一下 bagging,boosting,stacking

13. stacking 和 nn 的區(qū)別?(nn 也可以搭積木,拼接)

其他

1. 哪些算法需要對(duì)特征先進(jìn)行歸一化,這類算法有什么特點(diǎn),不進(jìn)行歸一化的缺點(diǎn)是?

2. 如何解決過(guò)擬合,講一下 L1 和 L2,L1 為啥能得到稀疏解

3. 如何處理樣本不平衡

4. 分類和回歸任務(wù)有哪些評(píng)估指標(biāo)

5. 寫 huber loss 公式

6. auc 是啥,怎么解釋。如果線下 auc 好,線上 auc 變差,有什么可能的原因

7. auc 針對(duì)的是單個(gè)值的排序,那么怎么對(duì) list 進(jìn)行排序(ndcg ?)

8. 多分類 auc 怎么算

9. 交叉熵公式

10. LR 的損失函數(shù)是啥,怎么來(lái)的,手推 LR

11. LR 如何優(yōu)化目標(biāo)函數(shù)

12. SVM 和 LR 區(qū)別

13. 為什么 LR 使用交叉熵而不是 MSE

14. 講一下先驗(yàn),后驗(yàn),最大似然估計(jì),最大后驗(yàn)估計(jì)

15. 拋一次硬幣,正面為上,是啥分布。拋 n 次硬幣,正面為上的數(shù)目是啥分布

16. 廣義線性回歸了解么

3. 排序,操作系統(tǒng),數(shù)據(jù)結(jié)構(gòu),計(jì)網(wǎng)

這方面問(wèn)得比較少

1. 快排時(shí)間復(fù)雜度

2. 排序算法了解哪些,講一下快排和堆排,堆排適用于哪些場(chǎng)景

3. 講一下哈希表哈希表用什么數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn),怎么解決哈希沖突,哈希表數(shù)組空間大小怎么確定

4. 線程,進(jìn)程是啥,進(jìn)程間通信方式,如何保證線程安全

5. 多進(jìn)程和多線程區(qū)別,各自的適用場(chǎng)景,線程安全怎么解決,有哪些鎖,樂觀鎖悲觀鎖了解嗎,自旋鎖適用于什么場(chǎng)景

6. TCP 協(xié)議了解嗎

4. 編程語(yǔ)言,大數(shù)據(jù)相關(guān)

Hive 相關(guān)

1. 了解 Spark,Hadoop,Hive,Scala 嗎?(我基本不會(huì),實(shí)習(xí)時(shí)寫過(guò)一些簡(jiǎn)單的 Hive SQL)

2. Hive SQL 大表 join 小表,可以怎么優(yōu)化

3. Hive sql union 和 union all 區(qū)別,行轉(zhuǎn)列和列轉(zhuǎn)行了解嗎

4. Hive 讀取 json 某個(gè) key 對(duì)應(yīng)的值

5. Hive 數(shù)據(jù)傾斜怎么處理

Python 相關(guān)

1. 說(shuō)一下 Python 中的 lambda

2. Python copy 和 deepcopy 區(qū)別, if a 和 if a is not None 區(qū)別

3. Python is 和 == 區(qū)別,兩者分別在比較什么?Python 沒有 switch... case.. ,如何優(yōu)雅地實(shí)現(xiàn)

4. Python 有哪些對(duì)象類型,哪些是可變對(duì)象,哪些是不可變對(duì)象

5. Python 中,li = [0,1,2] ,那么 li[3] 和 li[:3] 分別返回什么

6. Python 寫過(guò)多線程嗎

7. 字典有 key, value,按照 value 進(jìn)行排序

5. 手撕

鏈表相關(guān)

1. 鏈表翻轉(zhuǎn)

2. 合并兩個(gè)有序鏈表

3. 判斷鏈表是否有環(huán),返回環(huán)的入口

樹相關(guān)

1. 無(wú)序數(shù)組轉(zhuǎn)二叉搜索樹

2. 兩個(gè)樹節(jié)點(diǎn)的最近公共祖先

3. 二叉樹先序遍歷展開成鏈表 in-place

4. 無(wú)序數(shù)組轉(zhuǎn)平衡二叉搜索樹(不能先對(duì)數(shù)組進(jìn)行排序

5. 給你兩顆二叉樹 a,b(只有數(shù)的結(jié)構(gòu)而沒有 value),判斷a 是否 b 的子樹(只需要 b 的某個(gè)子樹結(jié)構(gòu)跟 a 一樣就行),能否繼續(xù)優(yōu)化?

DFS,BFS

1. 打印字符串所有子序列

2. 字符串全排列(字符串可能有重復(fù)元素)

3. 迷宮問(wèn)題,迷宮里有多個(gè)人處于不同位置,每個(gè)人逃出迷宮有最短路徑值,求這些最短路徑值的最大值

4. 劃分為 k 個(gè)相等的子集:給定一個(gè)整數(shù)數(shù)組 nums 和一個(gè)正整數(shù) k,找出是否有可能把這個(gè)數(shù)組分成 k 個(gè)非空子集,其總和都相等

排序,大小

1. 子數(shù)組最大和

2. 子矩陣和的最大值

3. 兩個(gè)有序數(shù)組的中位數(shù)

4. 求數(shù)組的第 k 大數(shù),時(shí)間復(fù)雜度是多少?

5. 讀取文本,統(tǒng)計(jì),然后排序(有多個(gè)排序因素)

6. 一個(gè)數(shù)組只包含0,1,2三個(gè)數(shù),對(duì)這個(gè)數(shù)組進(jìn)行排序

7. 最大數(shù)組合:給定一個(gè)非負(fù)整數(shù)數(shù)組,求一個(gè)拼接出來(lái)的最大數(shù)。比如 [2, 32] => 322

DP

1. 股票最大利潤(rùn)(只能交易一次)

2. 走樓梯方法數(shù),一次可以走一個(gè)臺(tái)階或者兩個(gè)臺(tái)階,總共有 n 個(gè)臺(tái)階

3. 01數(shù)組,長(zhǎng)度為 n,1代表可達(dá),0 代表不可到達(dá),一次可以跳 3 到 5 步。求跨越該數(shù)組的最小步數(shù)(起點(diǎn)可以看成 index 為 -1,終點(diǎn)可以看成 index 為 n)

其他

1. 順時(shí)針打印二維矩陣

2. 升序數(shù)組,求不同絕對(duì)值個(gè)數(shù)

3. 二維平面判斷一個(gè)點(diǎn)是否在三角形以內(nèi)

4. 給定數(shù)組,計(jì)算有多少個(gè)子數(shù)組和為 target

5. 怎么編程求幾何平均值,需要考慮什么情況,怎么解決

6. 提供東西視圖和南北視圖,求城市體積最大值,最小值,leetcode 807 變種

7. 正整數(shù)數(shù)組滿足 2 * a[i] < a[i+1],給定數(shù)字 K,數(shù)組中是否存在兩個(gè)數(shù) x + y = K

8. 協(xié)同過(guò)濾中,需要計(jì)算用戶相似度矩陣。給定用戶 ID,每個(gè)用戶的聽歌列表(music id 列表)。計(jì)算用戶相似度矩陣

9. 給一個(gè)數(shù)據(jù)表,有兩個(gè)字段(user, login_time),用 SQL 求連續(xù)兩天登錄的用戶占比

6. 場(chǎng)景題,開放題

1. 在搜索框輸入文字的時(shí)候,會(huì)出現(xiàn)搜索提示,比如輸入‘騰訊’可能會(huì)提示 ‘騰訊視頻’。你覺得搜索提示是用什么數(shù)據(jù)結(jié)構(gòu)來(lái)實(shí)現(xiàn)的

2. 學(xué)校門口的十字路口車流量預(yù)測(cè),怎么建模?(已有歷史車流量數(shù)據(jù))

3. 年齡預(yù)測(cè)(范圍 10 到 50),目標(biāo)是最大化準(zhǔn)確率,怎么設(shè)計(jì)損失函數(shù)?如果要求預(yù)測(cè)結(jié)果在正負(fù) 3 以內(nèi)就行,怎么設(shè)計(jì)損失函數(shù),如何優(yōu)化?

4. 有個(gè)商品庫(kù),商品庫(kù)記錄的車的型號(hào),最低價(jià)格,最高價(jià)格(沒有精準(zhǔn)價(jià)格)。當(dāng)前用戶在瀏覽某個(gè)商品,要求推薦同個(gè)檔次的商品,如何建模?假如商品庫(kù)很大,要推薦相似度最大的 3 個(gè)商品,如何解決?

5. 定義兄弟字符串如下:若兩個(gè)字符串存在一樣的字符,每個(gè)字符次數(shù)都一樣,但是順序有可能不同。比如 abbc 和 acbb 是兄弟字符串,abbc 和 acb 不是?,F(xiàn)有一個(gè)很大的日志文件,每一行是一個(gè)單詞。問(wèn)題:給定一個(gè)單詞,查詢?nèi)罩疚募性搯卧~兄弟字符串有多少個(gè)。有多次查詢操作。

6. 怎么給 50 w 高考考生成績(jī)排序,要求時(shí)間空間復(fù)雜度盡可能低

7. 一副撲克牌,取出一張,剩下的 53 張給你看,如何判斷抽出的是哪一張(要求時(shí)間,空間復(fù)雜度最優(yōu))

8. 一個(gè)超級(jí)大文件,每一行有一個(gè) ip 地址,內(nèi)存有限,如何找出其中重復(fù)次數(shù)最多的 ip 地址

9. 有一款新游戲,怎么識(shí)別出土豪(可能在新游里充大量錢的用戶)

10. 提供一個(gè)包含所有英文單詞的字典,為手機(jī)的T9輸入法設(shè)計(jì)一個(gè)索引,例如輸入4能夠提示出g、h、i開頭的英文單詞(greate、hello、……),輸入43能夠提示出ge、he、id、if (hello……) 等詞開通的英文單詞,

image
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容