美團算法面經(搜索算法)
一面
邏輯題:8 5 3升的桶 8升水侧啼, 分成兩個4升
比較簡單的邏輯題躬它,也有通用題目 LeetCode 水壺問題 先試著做一下題目再看 題解算法題:一個字符串,找到第一個只出現(xiàn)一次的字符妇菱,n空間n時間晦墙,只能掃一次
有原題:牛課題霸:第一個只出現(xiàn)一次的字符
set或者更省內存的bitset算法題:一個整數(shù)數(shù)組击你,找最長的先增后降的序列
基礎題:庞褡椋客題霸:最長遞增子序列
先分別找最長遞增和最長遞減的,然后合并一下就好了c++基礎丁侄,shared ptr的特點是什么惯雳,可以引用傳參嗎?
c++11的智能指針鸿摇,通過引用計數(shù)來管理石景,引用計數(shù)為0的時候釋放內存,有效防止內存泄露的問題拙吉,每次拷貝引用計數(shù)都會+1潮孽,在傳參時,不可以引用傳參筷黔,原因是引用傳參不會增加引用計數(shù)往史,在多線程或者閉包場景可能會導致引用計數(shù)混亂引發(fā)core或者內存泄露的問題項目:為什么設計神經網絡解決問題,目前網絡存在的問題是什么佛舱,后續(xù)可以怎么優(yōu)化
二叉樹想必大家都了解椎例,對于只有一個節(jié)點的二叉樹挨决,只會有一種結構,對于有兩個節(jié)點的二叉樹粟矿,那么會有2種可能的結構凰棉,那么問題來了,對于有n個節(jié)點的二叉樹陌粹,一共有幾種可能的情況陕习?
當時直接就想列一下3,4,5個節(jié)點分別有多少種可能,然后看能不能找到規(guī)律潮峦,可是當去遍歷4個節(jié)點時兴喂,發(fā)現(xiàn)遍歷不住了,就放棄了蒙幻。然后靈機一動映凳,發(fā)現(xiàn)對于n個節(jié)點的二叉樹,去掉根節(jié)點之后邮破,會出現(xiàn)2個種情況诈豌。
第一種
一種是變成一顆n-1個節(jié)點的二叉樹,這種情況存在兩種可能抒和。
第二種
另一種情況是矫渔,會變成一個a個節(jié)點的二叉樹和一個b個節(jié)點的二叉樹,a+b=n-1摧莽。
這樣很容易列出遞推公式庙洼,問題就引刃而解了。
上面公式可以優(yōu)化一下镊辕,我們設 ,這樣可以優(yōu)化為
- 這個題目感覺挺新穎的油够,大意是我們令a-z對應數(shù)字1-26,這樣我發(fā)送給你一串數(shù)字串比如123征懈,然后進行解析會有abc石咬,lc,aw這3種情況卖哎,然后你輸出3表示有3種可能碌补。那么問題就來了,我傳給你一串數(shù)字串,然后你告訴我有多少種可能的情況棉饶。
這題目很明顯是用動態(tài)規(guī)劃來做厦章,最開始我想法是用來表示的串有多少種可能性,那么遞推公式為
當時以為就解決了照藻,可是發(fā)現(xiàn)在對123進行驗證的時候發(fā)現(xiàn)有4種情況袜啃,最后發(fā)現(xiàn)原來是1,2,3這種情況重復了。簡直心碎啊幸缕,當時時間緊迫群发,沒有容我三思晰韵。不過面試完了之后,我繼續(xù)研究這個問題熟妓,當天晚上就想出來了雪猪。用表示子串有多少種可能的表示,我們可以發(fā)現(xiàn)起愈,對于來說只恨,無非就是在后面加了一個數(shù)字,當不能構成一個1-26的數(shù)字時抬虽,那么其實,而當可以構成1-26的數(shù)字時官觅,.這樣遞推公式就是
二面
- 項目:為什么設計神經網絡解決問題,目前網絡存在的問題是什么(確實是和一面的問題一模一樣)
- 二維有序數(shù)組 找target
原題:牛課題霸:二維數(shù)組中的查找 - 一個人打靶十次命中7次阐污,命中率是70%休涤,這個概率是怎么估算出來的
面試官實際是想問極大似然估計,理解了題意之后就好回答了 - 兩瓶墨水笛辟,一紅一黑功氨,用小勺從紅墨水瓶里舀一勺放入黑瓶,攪拌均勻手幢,然后從黑瓶里舀一勺放入紅瓶疑故,這時紅瓶里的紅墨水多還是黑瓶里的黑墨水多?如果不攪勻呢弯菊?
都是一樣多,攪拌均勻的話可以很容易的寫出公式踱阿。不攪勻的話管钳,直接宏觀來想,是守恒的软舌,紅墨水少了多少才漆,就需要用多少黑墨水來填
三面
-
算法題:順時針打印二維數(shù)組
原題 牛課題霸:順時針打印矩陣
關鍵考點是邊界條件,奇數(shù)偶數(shù)兩種情況如何簡化代碼佛点,極限情況(例如1*1的矩陣)要確保能打印 - 項目細節(jié) 出發(fā)點醇滥,為什么這么做,如何迭代的
- 如果離開前一家公司的話超营,如果挽留你鸳玩,什么地方最讓你留戀,最可能不離職了
美團 問的算法和機器學習的都很深入演闭。
問的算法和機器學習的都很深入不跟。
先自我介紹之后,就是編程算法題了
1.輸出一個字符串的下一個字典序
如ABDC 輸出ACBD(不會米碰。窝革。)
- 輸出一個字符串的最長回文(沒寫完整购城,時間拖太久。虐译。瘪板,他直接說下一個了,應該要用兩個輔助棧)
3.n個蘋果放入m個盤子中有多少種方法(不能用排列組合漆诽,算法實現(xiàn))(動態(tài)規(guī)劃)
問題: - 兩個集合如何求并集侮攀,交集
- 兩個集合如何求相似度,維度不一定相同
- 如何找出N個數(shù)的中位數(shù)拴泌,內存不夠怎么辦
- Top k問題
- 你最熟悉的兩個機器學習的算法魏身,我說了LR和SVM。然后讓我講SVM蚪腐,需要推公式箭昵,我。回季。推家制。如何分類非線性問題,答核函數(shù)泡一,知道xx核函數(shù)嗎(徑向基核颤殴,好吧,就是高斯核)鼻忠,沒聽過(只知道多項式核涵但,高斯核),核函數(shù)的優(yōu)缺點(優(yōu)點避免高維運算帖蔓,缺點不知道矮瘟。。)塑娇,SVM的優(yōu)缺點澈侠,balabala
- 給你1000w篇文檔或html,如何判斷是否為體育類的新聞埋酬,需要給出系統(tǒng)的方法(分詞+人工判定+詞庫+SVM訓練)哨啃,你覺得整個過程中有哪些需要注意的地方,我提到了過擬合写妥,面試官:有哪些防止過擬合的方法拳球,答:添加正則化項,交叉驗證珍特,樹的話可以剪枝醇坝,問:還有呢,我。呼猪。画畅。
- HashMap如何實現(xiàn),解決碰撞還有哪些方法宋距,TreeMap呢轴踱,紅黑樹的原理,平均時間復雜度谚赎,最差的時間復雜度淫僻?O(lgn)?那邊比較耗時間壶唤?答更新的時候需要左旋右旋雳灵?
- 知道m(xù)ap-reduce嗎,shuffle是做什么用的闸盔?如何用map-reduce對浮點數(shù)排序(只做一次map-reduce)悯辙?
- 用什么數(shù)據(jù)結構實現(xiàn)深度優(yōu)先搜索?廣度優(yōu)先搜索迎吵?層次遍歷躲撰?我:層次遍歷和廣度優(yōu)先搜索不是類似的嗎,面試官:你確定击费?我拢蛋。。
- 問了下協(xié)同過濾和KNN模型蔫巩,他說了幾個術語我都沒聽明白谆棱,我只知道根據(jù)相似度做推薦。面試官說:貌似你的項目都是偏開發(fā)的嘛圆仔,我垃瞧。。有沒有手動實現(xiàn)過什么機器學習算法荧缘,我。拦宣。
- 實現(xiàn)負載均衡的算法截粗,輪詢,一致性hash鸵隧,最小連接數(shù)绸罗。。面試官:還有呢珊蟀,我。腻窒。想不到了
面試官貌似比較糾結要不要讓我過,考察的確實蠻深入儿子,編程的寫的不好砸喻,最后猶豫了一下還是把我掛了柔逼,這一面時間真的很長啊9:15-10.30愉适,面試官各種追問维咸,招架不住腰湾。
微軟Bing團隊面經
寫在前面
微軟的面試整體偏向基礎费坊,英語能力考察僅限于個人簡介和項目描述附井,如果運氣好的話都是中國的面試官永毅,沒有英文面試沼死。
投遞簡歷之后會有hr先和你聊一輪,要求做一個一分鐘的英文自我介紹县钥,然后會對英文能力做一個整體評估若贮,告訴你應該怎么準備可能的英文面試。
下面是技術干貨部分
電話面試
微軟的社招面試通常是先進行一輪電話面試谴麦,面試通過的話才會邀請進行現(xiàn)場面試
- 什么是死鎖搏予,造成死鎖的原因有哪些
- 數(shù)據(jù)庫的索引有了解過嗎雪侥,有哪些優(yōu)缺點
- 算法題:rotate一次的數(shù)組,找target旬牲,例如 [3,4,0,1,2] 找4所在的位置原茅,如果不存在返回-1擂橘,要求logn時間 (LeetCode medium原題,直接二分即可昌罩,寫代碼之前記得問有沒有重復元素這類二分可能會遇到坑茎用,面試官很nice 很樂意多交流,另外ms的面試風格夯辖,一定要自己想test case,盡可能的覆蓋所有邊界條件)
現(xiàn)場面試
電話面試之后會約現(xiàn)場面試卒暂,通常會安排5-6輪的面試昙楚,每輪一小時堪旧,前3輪是基礎面淳梦,面試結束后面試官商量決定要不要進行后續(xù)的面試,當然如果表現(xiàn)比較差陨囊,也可能在某一輪直接結束蜘醋。
1面
- 算法題:最大子數(shù)組和 (LeetCode原題,n時間1空間)
-
算法題:兩個長度為m的無序數(shù)組A无蜂,B,對于任意不相交的區(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]最大 (這題比較難,先寫了個暴力解法未辆,然后和面試官逐步討論優(yōu)化,沒有給出最優(yōu)解法) - n個準確率為50%的分類器拙友,可以通過什么方式提升準確嗎遗契?60%呢涉瘾?如果可以,提升到96%需要多少個?(這題在臺大林軒田的機器學習課程里有提到過)
- xgb和gbdt的區(qū)別 (幾乎必問的題目顶考,提前準備一下,說的要有條理渊季,有哪些算法優(yōu)化却汉,哪些工程實現(xiàn)優(yōu)化合砂,可以適當擴展提一下lgb)
- 前序遍歷 中序遍歷 后序遍歷 知道那些可以恢復二叉樹,只知道前序和后序可以嗎缘屹?原因?
2面
- 無序數(shù)組找第k大的數(shù) (經典題目了踢代,這類題目可以表現(xiàn)一下思考過程,比如最開始最直觀的做法是排序慕爬,然后優(yōu)化的思路磅甩,不需要全部排序卷要,部分有序就可以了,最后能給《算法導論》里的n時間解法當然最好了瓶堕,給不到的話給個nlogn的解法也還可以吧)
- 一個字符串 切分成多個回文串,返回所有可能题画,如aab要返回 [[aa,b],[a,a,b]] (印象里應該是LeetCode原題)
3面
- 實現(xiàn)atoi 考慮所有情況 (LeetCode medium,記得考慮所有異常情況竞思,包括溢出)
- 實際業(yè)務問題,如何屏蔽搜索結果的成人內容展示 (面試官一直提示說各種方法都可以课梳,當時的思路被局限在了模型上。這類業(yè)務問題的通用套路:先考慮簡單的規(guī)則,把所有可能覆蓋的規(guī)則描述一遍氧猬;然后拓展到模型漠魏,想一些規(guī)則cover不到的case柱锹,但是模型有能力cover)
4面
- 細聊項目提陶,里面的bad case怎么解锌蓄,具體的優(yōu)化方向 (這里主要考察的還是對自己項目的思考深度,面試官可能會挑戰(zhàn)剪决,你這個項目用一個簡單的規(guī)則就可以解決,為什么要用模型渗鬼。需要準備好可以應對挑戰(zhàn)的典型case譬胎,能說服面試官。另外就是項目收益的評估問題浩考,怎么評估模型正向搭伤,模型怎么上線)
5面 aa
- 聊人生聊理想 (對未來要做的方向的考慮,為什么工作了一年就想跳槽拍鲤,需要準備一個合適的跳槽理由,然后說一下目前的想法,一定要主動去詢問面試官铛漓,怎么樣合理的做職業(yè)規(guī)劃,面試官會很耐心的解答)
- 估算北京地鐵有多少司機 (《編程珠璣》里有一章專門講估算的)
轉廣告推薦 加面aa
面完bing搜索之后,hr告知面試通過但是組內沒有HC了杜窄,幫我轉了bing的推薦組
滴滴算法面經(定價策略算法)
校招時候就面過滴滴时迫,整體感覺滴滴是面試體驗最好的,面試官是以一種平等的態(tài)度來交流技術溺欧,即使有時候卡殼也會慢慢提醒(兩次都拿了offer)
安利一下 牛客題霸
https://www.nowcoder.com/activity/oj
最近各大廠的視頻面試都用牛客平臺岩遗,要求編譯運行案铺,難度比白板寫提升了笔诵,多寫寫練練手幫助很大,面試時候寫個bug free的代碼,拿到offer的概率大大提升
1面
- 項目噪伊,針對項目中的細節(jié)詢問比較多,比如怎么抽象問題闷供,損失函數(shù)怎么定的,為什么要選這個損失函數(shù)这吻,正負樣本怎么來的吊档,怎么驗證結果
- 算法題:求樹深 時間復雜度(LeetCode easy,時間復雜度是O(N)唾糯,因為要掃一遍所有的節(jié)點)
- 算法題:矩陣怠硼,只能向右或向下移怯,求最大路徑 時間空間復雜度(LeetCode easy 入門級的動態(tài)規(guī)劃香璃,時間復雜度O(M*N),空間復雜度O(N))
- linux基礎:awk實現(xiàn)left join(算法工程師少不了的基本功,awk sed建議學一下舟误,實際工作中也是很有用的)
- 機器學習基礎:boosting和bagging的區(qū)別 (bagging就是投票策略葡秒,會降低方差,減小過擬合風險嵌溢,boosting是降低偏差的策略眯牧,可以描述一下 Adaboost和gradient boost的區(qū)別)
- 梯度下降的更新公式,和梯度提升的區(qū)別 (這里可以繼續(xù)結合boosting來說赖草,梯度提升是在函數(shù)空間的学少,而梯度下降是在參數(shù)空間的)
2面
- 機器學習基礎:xgb和gbdt區(qū)別(基本是必考題目,從主要的優(yōu)化點說起秧骑,xgb是二階泰勒展開版确,gbdt是一階,可以類比牛頓法和梯度下降法的區(qū)別乎折,牛頓法收斂更快绒疗,但是由于更快逼近目標,會增大過擬合風險骂澄,因此在目標函數(shù)里有一個顯示的懲罰項吓蘑,與葉子節(jié)點數(shù)和葉子節(jié)點的權重有關,來控制模型復雜度坟冲;另外還有分裂節(jié)點的選擇磨镶,xgb怎么選取最優(yōu)分裂節(jié)點,有哪些加速的優(yōu)化之類的知識)
- 算法題:給一個字符串和一個k樱衷,要求找到不超過k個不同字符的最長子串的長度棋嘲,on時間(LeetCode上的medium或者是偏簡單的hard題目,用劃窗的思路做)
- 概率題:2人拋硬幣矩桂,正面贏沸移,反面讓另一個人拋痪伦,求先拋的人獲勝的概率
- 深度學習基礎:cnn和全連接的區(qū)別(參數(shù)共享,降低運算量)
- lstm有什么新的改進雹锣,替代(針對rnn來說 通過門電路把連乘轉換成了連加网沾,一定程度上緩解了梯度消失問題,梯度爆炸可以直接clip不需要考慮蕊爵,另外就是廣度了辉哥,lstm的應用和改進)
3面
- 預測一個城市不同區(qū)域一天的發(fā)單量,和滴滴業(yè)務相關攒射,設計一些調度策略
- 預測一個城市不用區(qū)域的降水量(這個可以作為前一道題的特征)
- 判斷用戶感知是否順路醋旦,給出思路(怎么獲取訓練數(shù)據(jù),怎么去判斷用戶的感知到底順不順路会放,找一些簡單的規(guī)則)
- 概率饲齐,拋硬幣,連續(xù)兩次正面向上為止咧最,求次數(shù)期望
猿輔導算法面經(OCR算法)
作者:記記面經而已
寫在前面
面猿輔導之前經歷了大廠3連跪捂人,剛開始社招的時候沒有準備好,其實心里是很慌的矢沿。
而且聽說猿輔導的面試難度也不低滥搭,所以沒有想到能順利過面試
面試前還是要好好刷題
牛客題霸 https://www.nowcoder.com/activity/oj 搞起來
正片分割線
1面
先自我介紹捣鲸,大概1分鐘左右瑟匆,準備延伸到項目開始講的時候,面試官直接打斷了摄狱,說先來做題吧
算法題1:
輸入 鏈表 453612 target 3
輸出 451236 就是把target后面的小于target的數(shù)移到target前脓诡,其余都保持相對關系无午,返回鏈表頭節(jié)點
算法題2:應該是leetcode pathsum
輸入 二叉樹媒役,target
輸出 所有從根節(jié)點到葉子結點的和為target的path
兩個算法題基本是在easy到medium之間的,刷過題的話應該都能秒解宪迟,題目1一定注意邊界條件酣衷,面試官看的還是很細的,給我指出了一處問題次泽,修改之后就沒有問題了
介紹深度學習項目:
面試官主要的關注點在訓練數(shù)據(jù)穿仪,畢竟標注數(shù)據(jù)是稀缺資源。這類問題要著重準備意荤,即使面試官不問啊片,也可以主動提,難點是標注數(shù)據(jù)太少了玖像,然后是怎么去做數(shù)據(jù)增廣的
2面
介紹深度學習項目:為什么用深度學習解紫谷,出發(fā)點是什么,模型最后學到了什么內容。(好像在leader面的時候會比較關注一個項目的出發(fā)點笤昨,有沒有數(shù)據(jù)佐證祖驱,說明不是為了用深度學習、為了炫技而用深度學習瞒窒,建議提前準備這類問題捺僻,可以在介紹項目的時候主動說,算是一個加分項)
hmm 維特比算法(NLP相關必考了崇裁,這里的應用點是解決識別準確率)
實現(xiàn)一個不考慮轉移概率的維特比匕坯,要求給出topn的路徑 (現(xiàn)場寫代碼,用了堆實現(xiàn)的拔稳,沒太準備好醒颖,寫的比較亂)
3面 hr
優(yōu)缺點
最有成就感的項目,為什么有成就感壳炎,遇到什么問題泞歉,怎么解決
總結
- 刷題 刷題,記得總結分類匿辩,避免同類型題不會做
- 項目要好好準備腰耙,和校招很大的區(qū)別是,面試官會問為什么做這個項目铲球,前期的調研和數(shù)據(jù)支撐非常重要挺庞,這個問題回答不好的話,整個項目是沒法讓面試官信服的稼病。還有項目中一些工業(yè)界常見的問題选侨,前面提到的訓練數(shù)據(jù)量不足的問題,還有模型訓練時間然走,迭代周期的問題援制,如果迭代速度慢,怎么解決
- 關于方向的問題芍瑞,工作一年還沒有定型晨仑,所以不要擔心換方向的問題,nlp面cv拆檬,推薦完全沒問題洪己。面試官更看重的是:基礎扎實,工程實現(xiàn)能力強
小米算法面經(推薦算法)
寫在前面
猿輔導面試通過后竟贯,也算有了一些信心答捕,差不多找到面試的狀態(tài)了,后續(xù)的面試也順利了很多
剛開始準備面試的時候屑那,多刷刷面經拱镐,有了幾次面試經歷之后晌缘,要自己多復盤,想想面試的時候痢站,什么地方回答的不好(主要是項目經歷的部分)
算法題方面就算是硬實力了磷箕,需要好好刷題
牛客題霸 https://www.nowcoder.com/activity/oj 搞起來
正片分割線
一面
- 先自我介紹阵难,我的習慣是經歷簡單介紹一下岳枷,然后自然轉向準備最充分的一個項目開始詳細講,面試官感興趣的話最好呜叫,不感興趣的話會直接打斷的空繁。主要介紹了項目的背景,難點和解決方案朱庆,面試官關心的點主要集中在問題抽象和損失函數(shù)盛泡,講清楚為什么這么做,項目大概聊了半小時左右
- 機器學習基礎:推導 lr娱颊,寫出loss和梯度(比起推導svm來說簡直就是送分題傲诵,要是寫不出來的話估計會直接掛,基礎還是要好好準備)
-
算法 鏈表對折 1 2 3 4 5 變成 1 5 2 4 3
拆解一下題目箱硕,(靈活)
a. 找到鏈表的中點 潘┲瘢客題霸: 鏈表中倒數(shù)第k個節(jié)點 是找中點的復雜版,都是雙指針解法
b. 翻轉后半段鏈表 啪缯郑客題霸: 翻轉鏈表
c. 合并兩個鏈表 潘ò荩客題霸: 合并兩個有序鏈表 是復雜版
二面
項目介紹
- 先介紹項目,主要聊了項目背景和收益惠昔,收益具體怎么衡量幕与,項目如何上線生效
- 算法題 m*n的二維數(shù)組,只能往右或者往下镇防,找最短路徑啦鸣,n空間 牛客題霸: 矩陣的最小路徑和
- 有了解過設計模式嗎营罢?(答了常見的工廠模式和單例模式赏陵,對應的應用場景饼齿,簡單扯了一下裝飾器模式饲漾,也是看xgb源碼看到的,其實不會用)
- 系統(tǒng)設計需要注意什么缕溉,如何設計一個系統(tǒng)考传,系統(tǒng)性能如何評估,需要考慮哪些指標(考察點應該是線上的系統(tǒng)了证鸥,指標比如內存使用率僚楞,qps勤晚,99 39 49時間之類的)
- 之前幫阿里云錄制過一些深度學習的入門課程,簡單聊了一下相關的內容
三面
- 介紹xgb
a. gbdt和xgb的區(qū)別(居然沒有問lgb)
b. 怎么選最優(yōu)分裂節(jié)點泉褐,怎么加速赐写,預排序有什么作用,怎么分箱膜赃,等寬還是等深
c. 怎么處理缺失值的挺邀,預測時候缺失值怎么辦 - 為什么離職,希望一份什么樣的工作
- 有沒有什么問題想要了解的(問了業(yè)務場景 工作內容)
總結
整個面試下來跳座,感覺問的基礎題偏多端铛,機器學習的內容偏多,基本沒怎么聊深度學習相關的事情疲眷。工程方面的問題也有涉及禾蚕,感覺應該是推薦系統(tǒng)早期的建設階段,更多的工作內容偏向于工程落地實現(xiàn)
百度算法9.27三面
一面:50分鐘
1狂丝、自我介紹
2换淆、問實習,問得挺細的
3几颜、開始擼代碼:第一題:劍指offer上面的~數(shù)組中出現(xiàn)次數(shù)超過一半的數(shù)字产舞,當時給了兩種解法,面試官問兩種有什么區(qū)別菠剩,就說了時間復雜度和空間復雜度不一樣易猫;第二題:求解完全二叉樹節(jié)點個數(shù),要求是必須要用到完全二叉樹的性質
二面:一個多小時
1具壮、問實習准颓、問項目,問得更細
2棺妓、撕代碼:大致的意思就是百度需要做一個檢索的工作攘已,我需要寫的就是通過給定的一級目錄id,輸出所有的子目錄id
3怜跑、問機器學習的样勃,SVM,LR性芬,xgboost原理
4峡眶、激活函數(shù)的種類,飽和激活函數(shù)有哪些植锉,缺點是什么辫樱?BN的原理以及效果?
5俊庇、深度學習過擬合欠擬合如何解決狮暑?
三面:四十分鐘:
1鸡挠、問實習問項目
2、考了一道智力題
3搬男、開始談人生聊理想:(1)你的缺點是什么拣展?(2)你最大的遺憾是什么?(3)你曾經放棄過什么缔逛?(4)曾經有什么事你特別想去做但是最后放棄了瞎惫?(5)曾經有什么事你特別想去做但是某個時間段你放棄了然而最后你還是堅持下來了?(4)假如領導必須要你做一件你不想去做的事你該怎么辦译株?(5)對未來的規(guī)劃是什么樣的瓜喇?(6)目前找工作的情況怎么樣?(7)期望地點是哪里歉糜?
4乘寒、有什么需要問我的?直接說面試官的回答吧:這次招聘(說是招聘我覺得幾乎沒有hc了)是聯(lián)合招聘匪补,需要比較所有人的面試成績然后擇優(yōu)錄取伞辛。
58nlp算法面經
找了在58NLP工作的本科同學內推,估計HR給忘了夯缺,第一批沒內推上蚤氏,只趕上了第二批筆試,當時已經開獎了好多人了踊兜,感覺坑位不多竿滨。
筆試:9.14筆試,20選擇+3代碼捏境,一個半小時于游,感覺時間有點緊,選擇題十幾分鐘草草了事垫言,抓緊時間搞代碼贰剥,結果三道全是簽到題,10分鐘3/3筷频,一共半小時交卷蚌成,感覺58已經招滿人了
一面二面:9.17
一面:
1.自我介紹
2.今后的事業(yè)規(guī)劃、研究方向
3.項目1:為什么選擇這種模型凛捏,有嘗試過其他模型嗎
4.BERT的優(yōu)缺點
5.PTM都了解哪些担忧,BERT與GPT區(qū)別
6.單項與雙向在實際訓練時有差別嗎
7.bert的mask會帶來什么缺點嗎
8.項目2:句對匹配任務
9.每次查詢都要與庫里所有的數(shù)據(jù)做計算,有考慮過優(yōu)化么
10.手撕代碼 :
(1)經典DP
(2)判斷兩個鏈表是否相交
ps:沒給反問機會
二面:
1.自我介紹
2.挑一個比較重點的項目開講
3.知識庫有多大葵袭,數(shù)據(jù)是分層存儲的嗎
4.數(shù)據(jù)是如何收集的
5.問題會有子問題嗎
6.準確率怎么驗證的
7.效果會跟數(shù)據(jù)集有關系嗎
8.sentence pair怎么改進的
9.CNN與RNN的區(qū)別
10.Transformer原理
11.注意力機制有哪些種類涵妥,本身原理上起了什么作用
12.怎么解決過擬合問題
13.BN在原理上怎么解決過擬合
14.常用損失函數(shù)有哪些
15.回歸問題主要用哪些損失函數(shù)
16.隱馬爾可夫了解么
17.數(shù)據(jù)不平衡怎么處理
18.數(shù)據(jù)不平衡的損失函數(shù)有哪些
19.交叉熵是什么原理
20.系統(tǒng)搭建怎么搭建的
21.項目3介紹
22.評價體系是什么
23.詞向量有哪些方法
24.分詞了解么
25.工作上的規(guī)劃,地點有選擇嗎
26.工程上的開發(fā)與落地有經驗嗎
27.知識蒸餾是什么坡锡,通過什么方式來簡化蓬网,比如albert,具體原理是什么
HR面:9.27
字節(jié)電商NLP一面涼經
一面 8.19 電商部門NLP崗
1.自我介紹
2.項目介紹
3.word2vec原理鹉勒,如何得到詞向量
4.如何分詞帆锋,分詞原理
5.競賽介紹
6.lightGBM是什么模型,GBDT原理
7. 數(shù)據(jù)集分成幾份禽额,每份的作用是什么
8.怎么知道模型過擬合了
9.如何應對過擬合
10.dropout是什么
11.過擬合什么情況下比較容易產生
12.tensorflow用過么锯厢,pytorch用來作過什么事情
13.場景題:現(xiàn)在有一些新聞,包含軍事脯倒、體育实辑、經濟等,想分出它屬于哪個類藻丢,該怎么做
14.能講下BERT么
15.手撕代碼:二叉樹路徑上和為target的最長路徑
依圖NLP算法涼經
一面:9.4 新加坡部門跨國面試
1.是保研嗎
2.實習
3.項目1
4.BERT為什么有效剪撬,與其他模型相比呢
5.Transformer優(yōu)點
6.數(shù)據(jù)源如何來的,數(shù)據(jù)更新如何解決
7.embedding方式有哪些
8.word2vec訓練時出現(xiàn)過問題嗎悠反,比如訓練后的詞之間的相似性不準
9.爬蟲框架用過哪些
10.手撕代碼
(1)手寫字典樹
(2)二叉樹的遍歷 遞歸非遞歸
二面:9.8
1.自我介紹
2.項目1
3.粗篩能過濾多少數(shù)據(jù)
4.評測過第一步的性能么
5.BERT原理残黑,
6.正則化是什么,LN是什么斋否,作用是什么
7.過擬合手段有哪些
8.Dropout原理
9.hyperscan的原理是什么
10.模型預測錯誤的數(shù)據(jù)梨水,為什么會錯,分析過么
11.sentence pairs模型中茵臭,為什么不直接用score排序
12.為什么要選用這種模型
13.自定義損失函數(shù)是什么疫诽,為什么要用這個
14.手撕代碼,leetcode.33
結果:掛了 代碼沒寫好只記得offer上有差不多的題旦委,現(xiàn)場寫的時候有些緊張踊沸,腦袋一片空白,轉不動了社证,寫了20分鐘磕磕絆絆才寫出來逼龟,第二天一查結果 果然掛了
貝殼NLP算法面經
一面
1.LDA基礎知識
2.LSTM梯度消失/爆炸
記不清了
二面
1.自我介紹
2.項目介紹
3.LDA主題數(shù)目確定
4.Gibbs采樣和變分推斷
5.GIbbs優(yōu)化目標是什么
6.Gibbs采樣與變分推斷的優(yōu)缺點
7.常用的模型(LSTM+BERT),訓練語料
8.BERT原理
9.Bert與LSTM比較
10.樣本不平衡的處理方法
11.了解NER么
12.統(tǒng)計類模型了解么 陰馬
13.編程語言用什么追葡,C++會么
14.embedding的方法(word2vec \glove\ fasttext)
15.glove 與word2vec的區(qū)別
16.LR腺律,SVM與XGboost了解么,介紹一下
17.GBDT宜肉,Xgboost的區(qū)別匀钧,Xgboost分布式計算是計算什么
18.代碼:寫快排
HR面
1.實習經歷,
2.說一個印象最深的項目谬返,收獲
3.今后還做這個方向么
4.目前關注的公司
5.對貝殼了解么
6.可以實習么
7.在哪個校區(qū)
8.反問(兩周之內給結果)
字節(jié)算法工程師-頭條生態(tài):一面涼經
1. 面試安排:長時間(10余天)的簡歷審核之斯,請求內推人幫忙查詢進度后,立刻收到了面試通知(直接免筆試)遣铝;
2. 面試環(huán)境:因為在國外佑刷,視頻面試有一定的延遲莉擒、回聲;面試官全程佩戴口罩瘫絮,看不出喜怒 ??涨冀;
3. 面試內容:
問項目:樓主主要做圖神經網絡、NLP相關內容麦萤。面試官只詢問了關于圖神經網絡的項目鹿鳖,過程約10分鐘,最后以“圖神經網絡這塊我也不太了解壮莹,我們來問點基礎的 ”翅帜,轉到下一話題;
問基礎:約10分鐘
LR的公式命满、原理涝滴;
BN的原理、 作用周荐、訓練與預測時的差異狭莱;
如何判斷Overfitting的產生,如何減輕Overfiting概作;L1 Norm 和 L2 Norm的差異腋妙,為什么L1 Norm能獲得稀疏解;
4. 寫題:約20分鐘
反轉鏈表中偶數(shù)位置的值讯榕,例如1-2-3-4-5-6-7 變?yōu)?1-6-3-4-5-2-7骤素;
寫出主要部分,但局部有細節(jié)瑕疵愚屁;
從K個整數(shù)中济竹,組合出能被3整除的最大數(shù),例如: [1, 2, 3]霎槐,組合出能最大能被3整除的數(shù)是321送浊;
給出回朔法的解法,面試官表示并非最優(yōu)解
5 反問:約5分鐘
問業(yè)務丘跌,答 曰主做推薦袭景;問圖神經網絡是否在你們部門有應用,答曰部門有人在做闭树,我說那樣便好耸棒,有所契合;
問既然做推薦报辱,為什么不問推薦相關的知識与殃,我有所了解;面試官答曰,簡歷上沒寫幅疼,沒法問米奸;
感覺不難,但還是掛了衣屏,有些遺憾... 補投了字節(jié)的一些實習躏升,再接再厲吧??
算法崗秋招面經總結
面經總結:
寫在前面
本人秋招期間捶牢,看了許多牛客上的面經,收益匪淺瞳遍。如今本人秋招已經接近尾聲了,在此寫一下秋招總結耍休,回饋拍庇遥客。
首先說一下本人背景:算法崗育八,科班对途,本碩都是某 985。有一段兩個半月的大廠非核心部門實習經歷髓棋,一篇冷門方向的 SCI 一區(qū)期刊論文实檀,一個小比賽的 TOP5。(實習比賽論文都有按声,但每樣都一般般膳犹,所以秋招也是十分艱難)
秋招結果:投遞了大大小小 30 多家公司,目前是拿到一份意向書签则。
意向書:字節(jié)(經歷了一次筆試掛须床,一次三面掛,再被撈三面后上岸的)
泡池子:京東物流渐裂,華為豺旬,360,OPPO(其中 360 和 OPPO 已經開過部分獎了芯义,我應該排序比較靠后或者掛了)
終面掛或者排序掛:網易互聯(lián)網哈垢,百度提前批,拼多多拼越計劃
二面掛:阿里(二面完后很久狀態(tài)都沒改變)扛拨,百度正式批耘分,騰訊 PCG
還有一些投了之后沒消息或者筆試完后沒消息求泰,這里就不列出來了央渣。
面經總結
1. 項目相關提問
項目相關提問我只列舉一下可能對大家有借鑒意義的問題。
1. 有沒有觀察單個特征和標簽之間的聯(lián)系
2. 每次加入一個特征渴频,如果效果沒有提升則不使用該特征芽丹。那怎么處理特征組合的問題。(組合后可能變好或者差)
3. ID embedding 怎么做
4. 項目中 Embedding 學習到的是什么卜朗,特征交叉的作用是什么
5. 為什么使用 DeepFM 來進行特征交叉
6. DeepFM 和 Deep&Wide 區(qū)別拔第,寫一下 FM 公式,DeepFM 優(yōu)點
7. DeepFM 只是簡單的交叉场钉,其他復雜點的對特征進行交叉的網絡了解嗎
8. 你說你發(fā)現(xiàn)了訓練集和測試集分布不一致的問題蚊俺。你是怎么發(fā)現(xiàn)這個問題的,怎么診斷定位逛万,除了可視化還有沒有其他直觀的指標
1. 對于一個算法課題泳猬,你覺得最重要的幾個環(huán)節(jié)有哪些。
2. 項目遇到了什么困難宇植,如何解決得封?
4. 項目中使用了哪些特征指郁?如果要繼續(xù)改進的話忙上,還可以使用哪些特征?
5. 有沒有使用其他更好的算法來解決問題
6. 你覺得你實習做的項目還有哪些地方可以做優(yōu)化
7. 項目遇到瓶頸坡氯,反映在業(yè)務上是怎么樣的晨横,你要怎么去解決這個問題
8. 有沒有調研過業(yè)界的做法
1. 你的比賽任務,四分類箫柳,評估指標用 auc 合理嗎
2. 比賽的 LSTM 和 CNN 是怎么用的手形,為什么可以用。講一下 RNN 和 CNN 的區(qū)別悯恍,為啥在你這個比賽中 LSTM 比 CNN 效果好
2. 機器學習基礎相關提問
特征相關
1. 講一下特征工程
2. 類別特征編碼方式有哪些库糠?如何解決 target encoding 的 target leakage?count encoding 有個缺點:測試集和訓練集分布不同涮毫,導致特征頻率不一樣瞬欧。怎么解決?
3. 如何進行特征選擇
4. 項目中如何做交叉特征罢防,為什么這樣交叉艘虎,基于業(yè)務意義?
5. 為什么需要計算特征重要性咒吐,計算特征重要性的方法有哪些
6. 連續(xù)特征怎么分箱野建,如何判斷分箱的結果是好是壞
7. 特征平滑方法有哪些
8. 怎么處理長尾問題属划,從樣本,模型的角度來看候生,從優(yōu)化器的角度來看
9. 什么樣的 ID 經過 Embedding 后可能有效同眯,如何篩選有效的 ID。有些 ID 數(shù)量級很大唯鸭,怎么處理
神經網絡相關
1. 神經網絡如何跳出局部最優(yōu)
2. 神經網絡如何緩解過擬合须蜗, 講一下 dropout,dropout 訓練和預測的時候有什么不同目溉, dropout 操作類似于機器學習中的什么操作
3. batch normalization 和 layer normalization 區(qū)別明肮,寫一下 bn 公式
4. 優(yōu)化器了解哪些,adam 相對 sgd 的改進
5. 激活函數(shù)的作用停做,各個激活函數(shù)的優(yōu)缺點
6. tf 處理特征的類有沒有了解( tf.feature_column)
7. 講一下 word2vec晤愧,有哪兩種形式大莫,詞的數(shù)量比較多蛉腌,分類時怎么優(yōu)化, word2vec 怎么做負采樣
8. item2vec 有沒有了解
9. 多分類如果有 10000 類別只厘,怎么優(yōu)化
10. graph embedding 了解嗎烙丛,神經網絡做 graph embedding 了解嗎
11. 講一下圖神經網絡
12. tf embedding_lookup 原理
13. 文本分類有了解嗎,說一下 textcnn
14. 如何緩解 RNN 的梯度消失
15. 講一下 LSTM羔味。LSTM 為啥能緩解梯度爆炸和梯度消失河咽?LSTM 激活函數(shù)可以使用 relu 嗎
16. 排序算法了解嗎?說了快排赋元,歸并忘蟹,冒泡等(后面發(fā)現(xiàn)好像問的是 ctr 中的排序算法)
17. 了解哪些推薦算法,nlp 的預訓練模型了解嗎搁凸,attention, transformer媚值,bert 了解嗎
18. CNN 和 RNN 在實際使用中有哪些優(yōu)缺點?NLP 中护糖,什么情況下使用 CNN褥芒,什么情況下使用 RNN?
19. 神經網絡權重全 0 初始化會有什么問題嫡良?應該怎樣初始化锰扶?講講 Xavier 初始化
樹模型相關
1. 樹模型怎么處理連續(xù)特征
2. 隨機森林的隨機性體現(xiàn)在哪里?boosting 和 bagging 區(qū)別寝受。隨機森林是不是樹越多越好坷牛。隨機森林采樣是有放回采樣還是無放回采樣
3. c4.5 用來解決 ID3 什么問題,gbdt 和 rf 分別是集成的什么思想很澄,解決什么誤差
4. GBDT 怎么生成一個新的樹京闰,怎么確定葉子節(jié)點的權重
5. 隨機森林和 xgboost 那個樹的深度更深
6. XGBoost 和 GBDT 的不同锨亏,為啥 XGBoost 選擇決策樹作為基分類器?
7. XGBoost 和 GBDT 分裂葉子節(jié)點的不同之處忙干,寫一下 XGBoost 計算節(jié)點分裂收益的公式
8. XGBoost 如果損失函數(shù)沒有二階導器予,該怎么辦
9. GBDT 和 XGBoost 用什么基分類器,如何分裂葉子節(jié)點捐迫,處理分類問題和回歸問題有啥不同
10. Lightgbm 相比于 XGBoost 的改進乾翔,LightGBM 為什么比 GBDT 快。LightGBM 怎么做并行
11. 看過 XGBoost, Lightgbm 等的源碼沒施戴?(沒有反浓。。)
12. 講一下 bagging赞哗,boosting雷则,stacking
13. stacking 和 nn 的區(qū)別?(nn 也可以搭積木肪笋,拼接)
其他
1. 哪些算法需要對特征先進行歸一化月劈,這類算法有什么特點,不進行歸一化的缺點是?
2. 如何解決過擬合藤乙,講一下 L1 和 L2猜揪,L1 為啥能得到稀疏解
3. 如何處理樣本不平衡
4. 分類和回歸任務有哪些評估指標
5. 寫 huber loss 公式
6. auc 是啥,怎么解釋坛梁。如果線下 auc 好而姐,線上 auc 變差,有什么可能的原因
7. auc 針對的是單個值的排序划咐,那么怎么對 list 進行排序(ndcg 拴念?)
8. 多分類 auc 怎么算
9. 交叉熵公式
10. LR 的損失函數(shù)是啥,怎么來的褐缠,手推 LR
11. LR 如何優(yōu)化目標函數(shù)
12. SVM 和 LR 區(qū)別
13. 為什么 LR 使用交叉熵而不是 MSE
14. 講一下先驗政鼠,后驗,最大似然估計送丰,最大后驗估計
15. 拋一次硬幣缔俄,正面為上,是啥分布器躏。拋 n 次硬幣俐载,正面為上的數(shù)目是啥分布
16. 廣義線性回歸了解么
3. 排序,操作系統(tǒng)登失,數(shù)據(jù)結構遏佣,計網
這方面問得比較少
1. 快排時間復雜度
2. 排序算法了解哪些,講一下快排和堆排揽浙,堆排適用于哪些場景
3. 講一下哈希表状婶,哈希表用什么數(shù)據(jù)結構實現(xiàn)意敛,怎么解決哈希沖突,哈希表數(shù)組空間大小怎么確定
4. 線程膛虫,進程是啥草姻,進程間通信方式,如何保證線程安全
5. 多進程和多線程區(qū)別稍刀,各自的適用場景撩独,線程安全怎么解決,有哪些鎖账月,樂觀鎖悲觀鎖了解嗎综膀,自旋鎖適用于什么場景
6. TCP 協(xié)議了解嗎
4. 編程語言,大數(shù)據(jù)相關
Hive 相關
1. 了解 Spark局齿,Hadoop剧劝,Hive,Scala 嗎抓歼?(我基本不會讥此,實習時寫過一些簡單的 Hive SQL)
2. Hive SQL 大表 join 小表,可以怎么優(yōu)化
3. Hive sql union 和 union all 區(qū)別锭部,行轉列和列轉行了解嗎
4. Hive 讀取 json 某個 key 對應的值
5. Hive 數(shù)據(jù)傾斜怎么處理
Python 相關
1. 說一下 Python 中的 lambda
2. Python copy 和 deepcopy 區(qū)別暂论, if a 和 if a is not None 區(qū)別
3. Python is 和 == 區(qū)別,兩者分別在比較什么拌禾?Python 沒有 switch... case.. ,如何優(yōu)雅地實現(xiàn)
4. Python 有哪些對象類型展哭,哪些是可變對象湃窍,哪些是不可變對象
5. Python 中,li = [0,1,2] 匪傍,那么 li[3] 和 li[:3] 分別返回什么
6. Python 寫過多線程嗎
7. 字典有 key, value您市,按照 value 進行排序
5. 手撕
鏈表相關
1. 鏈表翻轉
2. 合并兩個有序鏈表
3. 判斷鏈表是否有環(huán),返回環(huán)的入口
樹相關
1. 無序數(shù)組轉二叉搜索樹
2. 兩個樹節(jié)點的最近公共祖先
4. 無序數(shù)組轉平衡二叉搜索樹(不能先對數(shù)組進行排序)
5. 給你兩顆二叉樹 a役衡,b(只有數(shù)的結構而沒有 value)茵休,判斷a 是否 b 的子樹(只需要 b 的某個子樹結構跟 a 一樣就行),能否繼續(xù)優(yōu)化手蝎?
DFS榕莺,BFS
1. 打印字符串所有子序列
2. 字符串全排列(字符串可能有重復元素)
3. 迷宮問題,迷宮里有多個人處于不同位置棵介,每個人逃出迷宮有最短路徑值钉鸯,求這些最短路徑值的最大值
4. 劃分為 k 個相等的子集:給定一個整數(shù)數(shù)組 nums 和一個正整數(shù) k,找出是否有可能把這個數(shù)組分成 k 個非空子集邮辽,其總和都相等
排序唠雕,大小
1. 子數(shù)組最大和
2. 子矩陣和的最大值
3. 兩個有序數(shù)組的中位數(shù)
4. 求數(shù)組的第 k 大數(shù)贸营,時間復雜度是多少?
5. 讀取文本岩睁,統(tǒng)計钞脂,然后排序(有多個排序因素)
6. 一個數(shù)組只包含0,1,2三個數(shù),對這個數(shù)組進行排序
7. 最大數(shù)組合:給定一個非負整數(shù)數(shù)組捕儒,求一個拼接出來的最大數(shù)芳肌。比如 [2, 32] => 322
DP
1. 股票最大利潤(只能交易一次)
2. 走樓梯方法數(shù),一次可以走一個臺階或者兩個臺階肋层,總共有 n 個臺階
3. 01數(shù)組亿笤,長度為 n,1代表可達栋猖,0 代表不可到達净薛,一次可以跳 3 到 5 步。求跨越該數(shù)組的最小步數(shù)(起點可以看成 index 為 -1蒲拉,終點可以看成 index 為 n)
其他
1. 順時針打印二維矩陣
2. 升序數(shù)組肃拜,求不同絕對值個數(shù)
3. 二維平面判斷一個點是否在三角形以內
4. 給定數(shù)組,計算有多少個子數(shù)組和為 target
5. 怎么編程求幾何平均值雌团,需要考慮什么情況燃领,怎么解決
6. 提供東西視圖和南北視圖,求城市體積最大值锦援,最小值猛蔽,leetcode 807 變種
7. 正整數(shù)數(shù)組滿足 2 * a[i] < a[i+1],給定數(shù)字 K灵寺,數(shù)組中是否存在兩個數(shù) x + y = K
8. 協(xié)同過濾中曼库,需要計算用戶相似度矩陣。給定用戶 ID略板,每個用戶的聽歌列表(music id 列表)毁枯。計算用戶相似度矩陣
9. 給一個數(shù)據(jù)表,有兩個字段(user, login_time)叮称,用 SQL 求連續(xù)兩天登錄的用戶占比
6. 場景題种玛,開放題
1. 在搜索框輸入文字的時候,會出現(xiàn)搜索提示瓤檐,比如輸入‘騰訊’可能會提示 ‘騰訊視頻’赂韵。你覺得搜索提示是用什么數(shù)據(jù)結構來實現(xiàn)的
2. 學校門口的十字路口車流量預測,怎么建模距帅?(已有歷史車流量數(shù)據(jù))
3. 年齡預測(范圍 10 到 50)右锨,目標是最大化準確率,怎么設計損失函數(shù)碌秸?如果要求預測結果在正負 3 以內就行绍移,怎么設計損失函數(shù)悄窃,如何優(yōu)化?
4. 有個商品庫蹂窖,商品庫記錄的車的型號轧抗,最低價格,最高價格(沒有精準價格)瞬测。當前用戶在瀏覽某個商品横媚,要求推薦同個檔次的商品,如何建模月趟?假如商品庫很大灯蝴,要推薦相似度最大的 3 個商品,如何解決孝宗?
5. 定義兄弟字符串如下:若兩個字符串存在一樣的字符穷躁,每個字符次數(shù)都一樣,但是順序有可能不同因妇。比如 abbc 和 acbb 是兄弟字符串问潭,abbc 和 acb 不是。現(xiàn)有一個很大的日志文件婚被,每一行是一個單詞狡忙。問題:給定一個單詞,查詢日志文件中該單詞兄弟字符串有多少個址芯。有多次查詢操作灾茁。
6. 怎么給 50 w 高考考生成績排序,要求時間空間復雜度盡可能低
7. 一副撲克牌是复,取出一張删顶,剩下的 53 張給你看,如何判斷抽出的是哪一張(要求時間淑廊,空間復雜度最優(yōu))
8. 一個超級大文件,每一行有一個 ip 地址特咆,內存有限季惩,如何找出其中重復次數(shù)最多的 ip 地址
9. 有一款新游戲,怎么識別出土豪(可能在新游里充大量錢的用戶)
10. 提供一個包含所有英文單詞的字典腻格,為手機的T9輸入法設計一個索引画拾,例如輸入4能夠提示出g、h菜职、i開頭的英文單詞(greate青抛、hello、……)酬核,輸入43能夠提示出ge蜜另、he适室、id、if (hello……) 等詞開通的英文單詞举瑰,