國(guó)慶第六天,也不忘記要充電。GitHub上有位id為imhuay的熱心人建立了一個(gè)關(guān)于國(guó)內(nèi)知名互聯(lián)網(wǎng)企業(yè)筆試和面試經(jīng)驗(yàn)的資源庫(kù),詳盡地總結(jié)百度騰訊頭條小米滴滴等名企網(wǎng)招、校招筆試面試時(shí)的內(nèi)容和套路,非常值得參考,而且是純中文的哦!
國(guó)慶長(zhǎng)假就要結(jié)束了,假期歇得怎么樣,是不是有點(diǎn)歇懶了呢?上班在即,要不要提前充充電?
近日,ICLR2019論文投稿列表公布,一篇BigGAN論文引發(fā)業(yè)界熱議。
兩相結(jié)合說明了什么?不怕別人比你優(yōu)秀,怕的是比你優(yōu)秀的人比你還勤奮!
勞逸結(jié)合十分重要,但相信也有不少人都準(zhǔn)備提前充電吧。
最近,在GitHub上有位id為imhuay的熱心人帶頭建立了一個(gè)關(guān)于國(guó)內(nèi)知名互聯(lián)網(wǎng)企業(yè)筆試和面試經(jīng)驗(yàn)的資源庫(kù),光從名稱上就能看出其內(nèi)容有多豐富:《2018/2019/校招/春招/秋招/算法/機(jī)器學(xué)習(xí)(MachineLearning)/深度學(xué)習(xí)(Deep Learning)/自然語言處理(NLP)/C/C++/Python/面試筆記》。
其中除了初步梳理和介紹的機(jī)器學(xué)習(xí)領(lǐng)域重要的基礎(chǔ)知識(shí)和脈絡(luò)結(jié)構(gòu)之外,還總結(jié)了一些國(guó)內(nèi)互聯(lián)網(wǎng)名企網(wǎng)招、校招筆試面試時(shí)的內(nèi)容和套路,非常值得立志進(jìn)入這些企業(yè)的小伙伴們參考,而且是純中文的哦!
目前,該資源庫(kù)在Github上已經(jīng)獲得4200多星,可以說是很火熱了。
Github資源庫(kù)地址:
https://github.com/imhuay/Algorithm_Interview_Notes-Chinese
這個(gè)庫(kù)有三個(gè)貢獻(xiàn)者,多虧他們,才能集聚如此豐富的題庫(kù)。在此,首先向這三位開發(fā)者致謝。
下面我們一起來看看,這個(gè)資源庫(kù)收集了哪些寶貴資源。
主頁(yè)面很簡(jiǎn)潔,就是一份按內(nèi)容劃分的主目錄。除了最后一項(xiàng)“筆試面經(jīng)”之外,其他的目錄標(biāo)題都是和計(jì)算機(jī)相關(guān)的熱門主題詞。里面是相關(guān)主題詞下的一些知識(shí)介紹和技術(shù)資料,同樣值得參考。
計(jì)算機(jī)相關(guān)熱門話題知識(shí)介紹和總結(jié)
比如“機(jī)器學(xué)習(xí)”這個(gè)條目,點(diǎn)擊進(jìn)去可以看到一些子目錄,包括“機(jī)器學(xué)習(xí)基礎(chǔ)”、“機(jī)器學(xué)習(xí)算法”、“機(jī)器學(xué)習(xí)實(shí)踐”、“集成學(xué)習(xí)”。
繼續(xù)點(diǎn)擊可以看到相關(guān)主題下的資料,比如下面就是“機(jī)器學(xué)習(xí)基礎(chǔ)”子目錄下關(guān)于“生成模型與判別模型”的介紹。
其他目錄結(jié)構(gòu)與此類似,比如下圖是“機(jī)器學(xué)習(xí)算法”子目錄下對(duì)支持向量機(jī)(SVM)的介紹。
再來看看同樣熱門的“自然語言處理”,子目錄分別為:自然語言處理基礎(chǔ)、詞向量、句向量。
里面內(nèi)容同樣相當(dāng)豐富,以“自然語言處理基礎(chǔ)”為例,下圖分別為Seq2Seq模型和語言模型的介紹。
除了知識(shí)總結(jié)與資料介紹,相信小伙伴們最關(guān)心的還是國(guó)內(nèi)互聯(lián)網(wǎng)名企的筆試面經(jīng)了。
百度、騰訊、頭條等名企筆試面經(jīng):一面二面三面
點(diǎn)擊主目錄下的“筆試面經(jīng)”,百度、騰訊、360、字節(jié)跳動(dòng)等互聯(lián)網(wǎng)名企赫然在列,我們來看看這些大牛企業(yè)筆試面試都考點(diǎn)啥。
先看騰訊的筆試,更新時(shí)間為9月16日,主目錄中給出了3道筆試題,分別是字符串系數(shù)、小Q與牛牛的游戲、三元組。
每道題的下方都給出了相應(yīng)的代碼和解法,涉及Python和C++語言。下圖為第二題的解法代碼。
再來看看百度的筆試,更新時(shí)間為9月14日。呈現(xiàn)形式基本一致,收錄兩道筆試題,字符串計(jì)數(shù)、尋尋覓覓。
主目錄下還有不少企業(yè)的筆試題收錄,感興趣的小伙伴可以自行食用。
https://github.com/imhuay/Algorithm_Interview_Notes-Chinese/tree/master/D-%E7%AC%94%E8%AF%95%E9%9D%A2%E7%BB%8F
互聯(lián)網(wǎng)名企筆試面經(jīng):面試部分
接下來看面試,這里給出了一位小伙伴面試字節(jié)跳動(dòng)深度學(xué)習(xí)/NLP方向職位的面試流程,一共四面,全程第一視角,生動(dòng)形象,簡(jiǎn)直有身臨其境之感!其中還不時(shí)穿插面試人自己的內(nèi)心OS(“不會(huì)、瞎說的、尬聊”什么的,小編也是服氣),可以說是很耿直了!
不過面試時(shí)這再正常不過了,不信你去試試,畢竟你跺你也麻!
來看看這位老兄的面試經(jīng)歷吧!不容易啊!
一面:
自我介紹,聊項(xiàng)目,深度學(xué)習(xí)基本問題
【算法】手寫 K-Means??目慕O絆算是寫出來一個(gè)框架,內(nèi)部細(xì)節(jié)全是問題,面試官比較寬容,勉強(qiáng)算過了
二面:
自我介紹,聊項(xiàng)目,深度學(xué)習(xí)基本問題
【算法】找數(shù)組中前 k 大的數(shù)字。我說了兩個(gè)思路:最小堆和快排中的 partition 方法;讓我選一個(gè)實(shí)現(xiàn),我選的堆方法,然后又讓我實(shí)現(xiàn)調(diào)整堆的方法。
三面:
自我介紹。為什么會(huì)出現(xiàn)梯度消失和梯度爆炸。
分別說了下前饋網(wǎng)絡(luò)和 RNN 出現(xiàn)梯度消失的情況,有哪些解決方法。
因?yàn)樘岬搅藲埐詈烷T機(jī)制,所以又問,分別說下它們?yōu)槭裁茨芫徑馓荻认?/p>
因?yàn)檎f殘差的時(shí)候提到了 ResNet,讓我介紹下 ResNet(沒用過,隨便說了幾句)
其他加速網(wǎng)絡(luò)收斂的方法(除了殘差和門機(jī)制)
我從優(yōu)化方法的角度說了一點(diǎn)(SGB 的改進(jìn):動(dòng)量方法、Adam)
提示我 BN,然后我就把 BN 的做法說了一下
然后問 BN 為什么能加速網(wǎng)絡(luò)的收斂(從數(shù)據(jù)分布的角度隨便說了幾句)
傳統(tǒng)的機(jī)器學(xué)習(xí)方法(簡(jiǎn)歷上寫用過 GBDT),簡(jiǎn)單介紹下 XGBoost
CART 樹怎么選擇切分點(diǎn)(基尼系數(shù))
基尼系數(shù)的動(dòng)機(jī)、原理(不會(huì))
【算法】直方圖蓄水問題,LeetCode 42. 接雨水;
當(dāng)時(shí)太緊張沒想出 O(N) 解法,面試一結(jié)束就想出來了,哎~
附 AC 代碼
class Solution {
public:
int trap(vector
int n = H.size();
vector
vector
for(int i=1; i
dp_fw[i] = max(dp_fw[i-1], dp_fw[i]);
for(int i=n-2; i>=0; i--) // 記錄每個(gè)位置右邊的最高點(diǎn)
dp_bw[i] = max(dp_bw[i+1], dp_bw[i]);
int ret = 0;
for (int i=1; i
ret += min(dp_fw[i], dp_bw[i]) - H[i];
return ret;
}
};
四面(非加面)
因?yàn)榱鞒坛隽藛栴},其實(shí)還是三面
【算法】和為 K 的連續(xù)子數(shù)組,返回首尾位置
LeetCode 560. 和為K的子數(shù)組
很熟悉的題,但就是沒想出來;然后面試官降低了難度,數(shù)組改成有序且為正整數(shù),用雙指針勉強(qiáng)寫了出來;但是邊界判斷有問題,被指了出來;然后又問無序的情況或者有負(fù)數(shù)的情況能不能也用雙指針做,尬聊了幾分鐘,沒說出個(gè)所以然。
如何無監(jiān)督的學(xué)習(xí)句子表示
我說 Self-Attention,讓我把公式寫出來,因?yàn)閷懙牟磺宄屛覍懺嫉?Attention
然后問怎么訓(xùn)練,損失函數(shù)是什么(沒說出來,除了詞向量我基本沒碰過無監(jiān)督任務(wù),而且我認(rèn)為詞向量也算不上無監(jiān)督...)
如何無監(jiān)督的學(xué)習(xí)一個(gè)短視頻的特征表示
抽取關(guān)鍵幀,然后通過 ResNet 等模型對(duì)每一幀轉(zhuǎn)化為特征表示,然后對(duì)各幀的特征向量做拼接或者直接保存為二維特征(瞎說的,別說視頻,我連圖像都沒做過)
再來看一個(gè)今日頭條算法工程實(shí)習(xí)生崗位的面試:
一面:
自我介紹;二分查找;
Algorithm_for_Interview/常用子函數(shù)/二分查找模板.hpp
判斷鏈表是否有環(huán);
Algorithm_for_Interview/鏈表/鏈表中環(huán)的入口結(jié)點(diǎn).hpp
將數(shù)組元素劃分成兩部分,使兩部分和的差最小,數(shù)組順序可變;
Algorithm_for_Interview/查找與排序/暴力搜索_劃分?jǐn)?shù)組使和之差最小.hpp
智力題,在一個(gè)圓環(huán)上隨機(jī)添加3個(gè)點(diǎn),三個(gè)點(diǎn)組成一個(gè)銳角三角形的概率;
../數(shù)學(xué)問題/#1
推導(dǎo)邏輯斯蒂回歸、線性支持向量機(jī)算法;
../機(jī)器學(xué)習(xí)/邏輯斯蒂回歸推導(dǎo)
../機(jī)器學(xué)習(xí)/線性支持向量機(jī)推導(dǎo)
二面:
在一個(gè)圓環(huán)上隨機(jī)添加3點(diǎn),三個(gè)點(diǎn)組成一個(gè)銳角三角形的概率,用積分計(jì)算上述概率。用程序解決上述問題。
多次采樣求概率,關(guān)鍵是如何判斷采樣的三個(gè)點(diǎn)能否構(gòu)成銳角三角形,不同的抽象會(huì)帶來不同的復(fù)雜度。
最直接的想法是,根據(jù)邊長(zhǎng)關(guān)系,此時(shí)需要采樣三個(gè) x 坐標(biāo)值,相應(yīng)的 y 坐標(biāo)通過計(jì)算得出,然后計(jì)算三邊長(zhǎng)度,再判斷,循環(huán)以上過程,計(jì)算形成銳角的比例。
更簡(jiǎn)單的,根據(jù) ../數(shù)學(xué)/#1 中提到的簡(jiǎn)單思路,原問題可以等價(jià)于“拋兩次硬幣,求兩次均為正面的概率”——此時(shí),只需要采樣兩個(gè)(0, 1)之間的值,當(dāng)兩個(gè)值都小于 0.5 意味著能構(gòu)成銳角三角形。
深度學(xué)習(xí),推導(dǎo)反向傳播算法,知道什么激活函數(shù),不用激活函數(shù)會(huì)怎么樣,ROC與precesion/recall評(píng)估模型的手段有何區(qū)別,什么情況下應(yīng)該用哪一種?深度學(xué)習(xí)如何參數(shù)初始化?
介紹kaggle項(xiàng)目,titanic,用到了哪些框架,用到了哪些算法;
三面:
自我介紹。分層遍歷二叉樹,相鄰層的遍歷方向相反,如第一層從左到右遍歷,下一層從右向左遍歷;
介紹AdaBoost算法。介紹梯度下降,隨機(jī)梯度下降。寫出邏輯斯蒂回歸的損失函數(shù)。C++,虛函數(shù),虛析構(gòu)函數(shù)。
先說到這里,Github庫(kù)中還有更多資料,只待你去探索。當(dāng)然,也歡迎你把自己的面試經(jīng)驗(yàn)簡(jiǎn)單總結(jié),留給后來的小伙伴們參考哦~
-
互聯(lián)網(wǎng)
+關(guān)注
關(guān)注
54文章
11075瀏覽量
102621 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8353瀏覽量
132315 -
GitHub
+關(guān)注
關(guān)注
3文章
465瀏覽量
16359
原文標(biāo)題:【Github 4K星】BAT頭條滴滴小米等筆試面經(jīng)+深度學(xué)習(xí)/算法/NLP資源匯總!
文章出處:【微信號(hào):AI_era,微信公眾號(hào):新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論