2017年即將過去,今年是忙碌的一年,從2月17還沒開學(xué)就來學(xué)校,到現(xiàn)在12月初,工作的事情終于塵埃落定,現(xiàn)將這一段經(jīng)歷寫下來,希望能幫助來年找工作的學(xué)弟學(xué)妹,同時(shí),對(duì)自己來說,也是一年的工作總結(jié),總結(jié)經(jīng)驗(yàn)教訓(xùn),對(duì)自己一個(gè)提升。
簡(jiǎn)單介紹一下,北郵本碩,要找的崗位主要是算法工程師(機(jī)器學(xué)習(xí)方向)。算法工程師找實(shí)習(xí)的時(shí)候,最終的結(jié)果是找到了四家:亞馬遜、京東、滴滴、騰訊地圖。找工作的時(shí)候,主要有百度sp、滴滴sp、美團(tuán)sp、新浪sp、搜狗sp、小米(沒談薪資直接拒了)等。總體而言,今年找工作相對(duì)以往還是很順利的,各大公司都很缺人,各家開出的工資相對(duì)于去年都非常誘人,找工作的情況也出乎了我們很多人的意料。
年初的時(shí)候,大概2月28左右開學(xué)吧,我2月16就來了,開始準(zhǔn)備找實(shí)習(xí)。簡(jiǎn)單的說一下面試的情況,有些可能已經(jīng)忘記,現(xiàn)在說個(gè)大概情況。
1. 滴滴,實(shí)習(xí)的是在論壇招人內(nèi)推的,兩面,第一面是主要問了svm lr等原理,簡(jiǎn)歷上的項(xiàng)目,svm怎么用于多分類。第二面寫了一道算法題,leetcode 63. Unique Paths II。問我是否會(huì)用spark,我說不會(huì)。然后就給我介紹了他們所做的項(xiàng)目。后來回來的路上我想了想,當(dāng)時(shí)問我是否會(huì)不會(huì)spark,我應(yīng)該說我雖然不會(huì),但是可以學(xué)的,留個(gè)好印象。沒過多久,就發(fā)了實(shí)習(xí)offer。后來去了滴滴實(shí)習(xí)。實(shí)習(xí)轉(zhuǎn)正三面,每面半小時(shí),所以還是相對(duì)容易了很多。轉(zhuǎn)正一面,主要問了在滴滴的實(shí)習(xí),給我的柑橘是更偏重業(yè)務(wù),對(duì)技術(shù)并不是太熱衷,做的項(xiàng)目的業(yè)務(wù)的主要應(yīng)用是什么,將來怎么評(píng)價(jià)之類的。一道算法題,leetcode上的,旋轉(zhuǎn)數(shù)組,leetcode 59. Spiral Matrix II。轉(zhuǎn)正二面,也是問了問滴滴的實(shí)習(xí),問了下gbdt的原理,xgboost與gbdt的區(qū)別,gbdt用于分類時(shí),分類概率的梯度體現(xiàn)在哪里。一道編程題,矩陣A與矩陣B相乘得到矩陣C,給定A和B,求C的秩。轉(zhuǎn)正三面,三面面試官是一個(gè)研究員,對(duì)數(shù)學(xué)推導(dǎo)有獨(dú)特的興趣。問了svm的推導(dǎo),什么是凸函數(shù),為什么拉格朗日對(duì)偶方程成立。滴滴的offer大約10月初發(fā)。
2. 美團(tuán)。實(shí)習(xí)的時(shí)候貌似沒內(nèi)推,走的校招。一面,上來讓寫了幾個(gè)算法,一個(gè)是數(shù)組全排列,一個(gè)是二叉樹的非遞歸先序遍歷,一個(gè)是反轉(zhuǎn)鏈表。然后問了過擬合問題,l1 l2正則區(qū)別之類的。然后進(jìn)入二面,二面的時(shí)候面試官先問了一個(gè)二叉樹的垂直遍歷,LeetCode 314. Binary Tree Vertical Order Traversal(這個(gè)題是leetcode付費(fèi)的題)。沒答上來,就掛了。校招時(shí)是找斜對(duì)門的美團(tuán)實(shí)習(xí)的大佬內(nèi)推的。共三面,一面面完告知通過接著二面,二面面完告知通過讓回去等三面,三面是電話面,晚上7點(diǎn)三面的,晚上12點(diǎn)就收到錄取意向書。做完筆試,過了幾天,晚上9點(diǎn)多美團(tuán)打電話過來,說明天早上10點(diǎn)來某某酒店面試。第二天一面問了簡(jiǎn)歷上的項(xiàng)目,編程題問了1到n的一個(gè)排好序的數(shù)組,少了一個(gè)元素,怎么找出來。我說二分查找,時(shí)間效率logn(也可以用位運(yùn)算,時(shí)間效率n)。二面問了項(xiàng)目,我簡(jiǎn)歷上有k-means,就問了其他聚類的方法,距離有多少種,影響聚類的因素。問了編程題leetcode 198 House Robber(動(dòng)態(tài)規(guī)劃)。三面電話面,問了項(xiàng)目,問了過擬合的問題產(chǎn)生、解決辦法,問了兩個(gè)編程題,leetcode 69 Sqrt(x),兩種方法解決,一種是二分查找,一種是牛頓法。另一個(gè)編程題給忘了,想起再補(bǔ)充。
3. 百度。內(nèi)推實(shí)習(xí)的時(shí)候,去年畢業(yè)的師兄去了百度**組,我們就找他內(nèi)推的。說實(shí)話,挺后悔的,我并不喜歡他這個(gè)方向,一方面我不擅長(zhǎng),另一方面過了我也不會(huì)去。不該圖省事找他推的。內(nèi)推實(shí)習(xí)時(shí),共二面,掛了。面試主要問的是**方面的,也沒什么意思,答的也不好。問了leetcode 206 Reverse Linked List,讓自己定義鏈表,問指針,對(duì)象,指針是對(duì)象嗎,對(duì)C++的考察很多。到校招實(shí)習(xí)時(shí),沒投簡(jiǎn)歷。到校招開始時(shí),我投的比較晚,所以錯(cuò)過了內(nèi)推機(jī)會(huì),然后到了校招。校招共三面,都是技術(shù)面,當(dāng)天狀態(tài)不太好,感冒了。主要問了二分類的標(biāo)準(zhǔn)有多少種,每種都是什么。struct與class的區(qū)別。線程與進(jìn)程的區(qū)別,io密集,計(jì)算密集使用多線程還是多進(jìn)程。一個(gè)發(fā)生器,產(chǎn)生0的概率是p,產(chǎn)生1的概率是1-p,p!=0.5,怎么使用這個(gè)產(chǎn)生0和1等概率的發(fā)生器(可以每次產(chǎn)生兩個(gè)數(shù)字,0 1判為0,1 0判為1,其他的舍棄重來)。k-means聚類相關(guān)問題,svm與lr的對(duì)比與區(qū)別。編程題問了多道,最小棧leetcode 155. Min Stack,還有幾道其他題目,忘了已經(jīng)。
4. 騰訊。實(shí)習(xí)投的北京微信,校招投的廣州微信,然而都沒找我面試。找實(shí)習(xí)時(shí),qq空間把我撈了起來邀請(qǐng)我面試,我拒絕了,后來騰訊地圖邀請(qǐng)我去面試,就去了。面試一下午,從1:40到5:20,共四面,前三個(gè)為技術(shù)面,第四個(gè)為leader面,leader也問了一些技術(shù),未來的規(guī)劃,來這里之后會(huì)干什么,反正就是泛泛的聊,還有就是你印象最深刻的一件事,最感動(dòng)的,最難忘的一件事,哎,這些問題。先是40分鐘一套卷子,讓做題,5道編程題,3道問答題可以選擇做。我當(dāng)時(shí)40分鐘把5道編程寫完就沒時(shí)間了。有一道是leetcode 300 Longest Increasing Subsequence,其他忘了,不過也不難。面試聊了項(xiàng)目,花了不少時(shí)間,也看了那5道編程題,怎么處理POI中的名稱問題,就是說一個(gè)地點(diǎn)可能有很多備選的名字,怎么確定哪個(gè)更合適。爬蟲相關(guān)技術(shù)。還聊了聊手頭的offer情況等。到后面校招內(nèi)推時(shí),投的廣州微信,但是廣州微信并不怎么缺人,投的人又多,所以就沒給面試機(jī)會(huì)。qq音樂把我撈了起來,但我并不想去深圳,就拒絕了。再后來校招的時(shí)候,不知道騰訊哪個(gè)部門邀請(qǐng)我去面試開發(fā)崗。我想了想,我并不想做開發(fā),就拒絕了。現(xiàn)在看起來,騰訊我還是有很多機(jī)會(huì)的,然而我都拒絕了。哎,現(xiàn)在仔細(xì)想一想,雖然房?jī)r(jià)高,但是深圳其他方面都挺好的,空氣質(zhì)量好,各種生活還是很不錯(cuò)的,四個(gè)面試機(jī)會(huì),只面了一個(gè),其他的都自己拒絕的,感覺還是非常可惜的。
5. 新浪。實(shí)習(xí)沒有投,校招投的內(nèi)推,面了四面,兩面技術(shù)面,三面總監(jiān)面,四面hr面。主要問了項(xiàng)目、gbdt與xgboost的區(qū)別、貝葉斯學(xué)派和統(tǒng)計(jì)學(xué)派的分歧,編程題問了反轉(zhuǎn)鏈表leetcode206,top k大的數(shù)(劍指offer題目,第一版30題)。
6. 搜狗。實(shí)習(xí)沒有投,校招內(nèi)推面了兩面掛了,校招面了兩面,發(fā)了offer。校招內(nèi)推時(shí),也是為了省事,找的搜狗**組的大大大師兄推的,跟百度那個(gè)類似,我也不感興趣。面試問了項(xiàng)目,編程問了最小編輯距離leetcode 72 Edit Distance,劍指offer 31連續(xù)子數(shù)組的最大和(找到起始位置和最大和)。校招兩面。主要是項(xiàng)目,二分類的評(píng)價(jià)標(biāo)準(zhǔn)有哪些、分別是什么。編程有二叉樹的先序中序后續(xù)非遞歸遍歷。二面面完說去看看領(lǐng)導(dǎo)在不在,回來說領(lǐng)導(dǎo)不在,就讓回來了,說后面可能有hr面。我心想,這是委婉拒絕的套路吧,過了幾天hr讓我去公司面,問了下學(xué)歷,問考研還是保研,有哪些offer,然后發(fā)了offer。
7 小米。三面技術(shù)面。面試之后,發(fā)了意向書,直到前些日子才聯(lián)系我。我說我已經(jīng)交其他公司三方,校招結(jié)束了。編程題問了leetcode 228. Summary Ranges, 給一個(gè)二叉樹,找到最深的一個(gè)節(jié)點(diǎn)到最淺的一個(gè)節(jié)點(diǎn)之間的最小公共父節(jié)點(diǎn),我的方法是層次遍歷,找到最淺的節(jié)點(diǎn)及最深的節(jié)點(diǎn),然后使用 leetcode 236 Lowest Common Ancestor of a Binary Tree中的方法去解決問題,時(shí)間效率為o(n),空間效率為o(n),面試官給的方法是保存所有路徑,然后去查找。問了項(xiàng)目,兩個(gè)項(xiàng)目問的非常細(xì),使用random forest計(jì)算特征重要性,對(duì)該維特征不進(jìn)行permutation,刪除可以不可以。峰度、偏度的數(shù)學(xué)公式及意義。二分類中AUC的具體定義,各個(gè)分類評(píng)價(jià)方法。最后三面leader面的時(shí)候還問了兩個(gè)思考問題,金融違約率,可能要房貸很長(zhǎng)時(shí)間才能知道是否違約,數(shù)據(jù)少,實(shí)驗(yàn)樣本回收時(shí)間長(zhǎng)所以對(duì)于這個(gè)問題怎么處理。還有就是為何利用訓(xùn)練集訓(xùn)練,用來預(yù)測(cè)測(cè)試集可以用來預(yù)測(cè)。我說的是這是基于一個(gè)大的假設(shè),訓(xùn)練樣本和測(cè)試樣本是基于獨(dú)立同分布的,后來我想了想我覺得也可以從熵 信息增益的角度思考。
8. 京東。 京東是實(shí)習(xí)過了,校招沒邀請(qǐng)我面試。 校招的時(shí)候,我找的京東的師兄內(nèi)推的,后來也參加了校招,筆試的挺好的,就是沒邀請(qǐng)面試,也有一些同學(xué)跟我一樣的情況,可能簡(jiǎn)歷掛了吧。京東實(shí)習(xí)面試是三面,兩面技術(shù)面,一面hr面。感覺比較坑的是京東的三面分別安排在了三天,為此我給我們老師請(qǐng)了三天假。京東用的較多的是Java,我自己是cpp Python較多。面試相對(duì)簡(jiǎn)單,問了svm原理推導(dǎo),兩個(gè)排好序的數(shù)組怎么合并成一個(gè)排好序的數(shù)組,雙指針啊。問了一個(gè)業(yè)務(wù)題場(chǎng)景題,給你一些惡數(shù)據(jù),讓你對(duì)顧客對(duì)一個(gè)新商品的退單率預(yù)測(cè),如果能預(yù)測(cè)出退單率,則可以延遲或者不發(fā)貨,節(jié)約物流成本。hr面的時(shí)候問了幾個(gè)問題,現(xiàn)在厲害的很多都是博士,你怎么看,有無讀博的打算?介紹一個(gè)你的項(xiàng)目。
9. 亞馬遜。 亞馬遜也是實(shí)習(xí)過了,校招沒邀請(qǐng)我。亞馬遜實(shí)習(xí)投的早,后來邀請(qǐng)去面試,共兩面技術(shù)面。第一面是一個(gè)美麗的北郵學(xué)姐(我不認(rèn)識(shí)),主要問了簡(jiǎn)歷的項(xiàng)目,lstm的原理,lstm為何能長(zhǎng)時(shí)記憶。二面有兩位面試官同時(shí)面,主要是編程題,也問了項(xiàng)目。編程題相對(duì)都是比較容易的,主要是leetcode 1 Two Sum ,leetcode 15 3Sum,leetcode 16 3Sum Closest ,leetcode 18 4Sum。還問了一個(gè)業(yè)務(wù)場(chǎng)景預(yù)測(cè)題,亞馬遜要銷售很多商品,你如何去預(yù)測(cè)商品需要用到的貨倉的體積。如果能預(yù)測(cè)出貨倉體積,這樣子就很容易去租賃倉庫了。
后面的公司都是實(shí)習(xí)和校招都沒過的。有的是面試未通過,有的是沒有面試,也一并寫下來。
10. 360。實(shí)習(xí)三面掛,校招內(nèi)推一面掛。實(shí)習(xí)面試,是我第一次去面試,面的實(shí)習(xí),路上還想,如果360過了,實(shí)習(xí)就結(jié)束了,可惜想法是美好的,現(xiàn)實(shí)是殘酷。實(shí)習(xí)是三面,兩面技術(shù),一面hr。上午10點(diǎn)面,40分鐘一場(chǎng),等面完二面等下午1點(diǎn)半還是2點(diǎn)開始hr面。兩面技術(shù)面的的確挺不好的,那是第一次去面試,也沒看網(wǎng)上的面經(jīng),自己的技術(shù)也并不太好。技術(shù)主要問了,svm的原理,smo算法,lstm有什么好處,為何防止梯度爆炸和梯度消失,bp推導(dǎo),編程題問了樹的深度,這個(gè)簡(jiǎn)單,但是代碼中竟然把==錯(cuò)寫成了=,范了這樣的錯(cuò)誤。還有問了找出二叉樹中和最大的一條路徑,不必經(jīng)過根節(jié)點(diǎn)leetcode 124. Binary Tree Maximum Path Sum。 hr面的時(shí)候問了以前的實(shí)習(xí)經(jīng)歷,考研還保研,我說考研,問考了多少分,有無對(duì)象,將來是打算在哪里發(fā)展。校招的時(shí)候,內(nèi)推去面,一掛面。問了簡(jiǎn)歷項(xiàng)目,問了聚類算法都有那些,算法的比較,cnn的原理各個(gè)層的作用,編程題問了二分搜索。感覺面的挺好的,然而還是掛了。很多同學(xué)都說360基本不缺人。的確實(shí)習(xí)還是校招,周圍過360的很少,包括很多大牛。
11. 阿里。 實(shí)習(xí)內(nèi)推一面視頻面,后來的實(shí)習(xí)校招也是一面掛,校招也是視頻一面掛。實(shí)習(xí)面的時(shí)候,主要問了簡(jiǎn)歷項(xiàng)目,問了svm的原理,svm的核函數(shù)的作用,lr能不能用核函數(shù),為什么。校招的時(shí)候,問了多元高斯函數(shù)的期望是什么,怎么推導(dǎo)?熵的定義是什么?怎么理解?編程題是劍指offer 30題,最小的k個(gè)數(shù),也是leetcode 215 Kth Largest Element in an Array,寫代碼并分析時(shí)間復(fù)雜度。阿里實(shí)習(xí)投的是阿里媽媽,校招投的是螞蟻金服。除了技術(shù)需要加強(qiáng)之外,視頻面試也表現(xiàn)出了兩個(gè)缺點(diǎn),一個(gè)是表達(dá)溝通需要大大的加強(qiáng),一個(gè)是要自信,同學(xué)在旁邊表示我的表達(dá)太快,太緊張了。還有一個(gè)非常重要的一點(diǎn),我校招內(nèi)推投的太晚了(8.8投的)以至于錯(cuò)過了校招內(nèi)推的時(shí)間點(diǎn),沒人找我面試,直接到了校招了。我為什么投這么晚呢?可以記住一個(gè)時(shí)間點(diǎn),大概6月底,7月初就開始互聯(lián)網(wǎng)的內(nèi)推了。我們是7月開始放實(shí)習(xí),7.4才開始去實(shí)習(xí)公司報(bào)到,那個(gè)時(shí)候想著,簡(jiǎn)歷上沒有個(gè)像樣的實(shí)習(xí),剛?cè)?shí)習(xí)的公司,什么也不會(huì)呢,簡(jiǎn)歷也不好寫。所以想稍微等一等,結(jié)果8.8再投的時(shí)候,差不多快結(jié)束了,我記得校招的內(nèi)推是8.18左右。所以時(shí)間節(jié)點(diǎn)一定要把握好,千萬不要拖。
12. 網(wǎng)易。實(shí)習(xí)的時(shí)候是筆試掛了,校招內(nèi)推也是筆試掛了,校招的時(shí)候申的深度學(xué)習(xí)工程師,校招時(shí)二面掛。第一面是一個(gè)美女姐姐,第二面試是兩位面試官一起面。主要問了項(xiàng)目,自己搭建網(wǎng)絡(luò)的結(jié)構(gòu),CNN網(wǎng)絡(luò)的結(jié)構(gòu),相關(guān)知名的cnn網(wǎng)絡(luò)結(jié)構(gòu),編程就問了一道,一些坐標(biāo)點(diǎn)都是(x,y)形式的讓以x的大小排序,x一樣的按y排序,我說很簡(jiǎn)單啊,使用sort函數(shù)寫個(gè)compare函數(shù)就可以了,不知道是要考察什么,要考察現(xiàn)場(chǎng)寫排序算法嗎?我當(dāng)時(shí)應(yīng)該問問的。其實(shí)我對(duì)深度學(xué)習(xí)的了解還是太少,需要更多的學(xué)習(xí),目前更多的是工程使用上的東西,我當(dāng)時(shí)應(yīng)該申機(jī)器學(xué)習(xí)工程師的,或許面試就通過了。
13. 網(wǎng)易游戲。 實(shí)習(xí)的時(shí)候簡(jiǎn)歷掛了,校招的時(shí)候本來申的人工智能工程師,結(jié)果給我轉(zhuǎn)成了游戲研發(fā)工程師,還不能更改,我去面了,一面掛。首先可以說明一點(diǎn),網(wǎng)易和網(wǎng)易游戲是分開招聘的,兩家可以分別投。再有就是網(wǎng)易游戲有兩塊,一塊是雷火盤古,一塊是互娛。我實(shí)習(xí)投的是雷火,找了互娛的同學(xué)內(nèi)推了一下,最開始不知道他們內(nèi)部互不承認(rèn),結(jié)果相當(dāng)于沒有內(nèi)推,簡(jiǎn)歷就給我掛了。所以投雷火一定要找雷火的人推,投互娛一定要找互娛的人推,不然等于沒有推。還有就是網(wǎng)易游戲?qū)嵙?xí)開始的特別早,去年11月還是12月,就開始內(nèi)推了,現(xiàn)在也是12月大家可以關(guān)注下消息。今年2月份我剛過完年來學(xué)校,我同學(xué)跟我說他網(wǎng)易游戲已經(jīng)筆試過兩批了,我頓時(shí)覺得自己落后了很多,有種別人校招都結(jié)束了,你才剛來學(xué)校的feel,何況我比學(xué)校規(guī)定的開學(xué)時(shí)候早來了十多天,當(dāng)時(shí)一頓慌張,趕緊問問師兄師姐到底什么情況。再有就是校招面試,先是40分鐘讓寫道編程題,然后再去見面試官。因?yàn)樗麄兘o我調(diào)成了開發(fā),我自己也確實(shí)沒什么經(jīng)驗(yàn),問的全是語言細(xì)節(jié)的,算法工程師從來不怎么問的,結(jié)果可想而知,就掛了。
14. 今日頭條。實(shí)習(xí)的時(shí)候一面掛,校招的時(shí)候也是一面掛。實(shí)習(xí)的時(shí)候問了簡(jiǎn)歷,當(dāng)時(shí)第一家面的360,掛了。貌似第二家面的頭條,也掛了,掛了很多家,心情還是挺郁悶的當(dāng)時(shí)。頭條實(shí)習(xí)一面的時(shí)候先讓寫編程題,類似于劍指offer第一版的第7章的7.2里的題目,叫做多叉樹(沒有指向父節(jié)點(diǎn)指針)中兩個(gè)節(jié)點(diǎn)的最低公共祖先。然后問了項(xiàng)目,問了svm的推導(dǎo),問的非常細(xì),問距離到底如何定義的,不可分的svm中松弛變量怎么理解,如果有個(gè)點(diǎn)特別異常,是否還能找到分割面,我自己當(dāng)時(shí)水平也比較菜,他問一個(gè)我回答一個(gè),我回答一個(gè),他說一句靠(kao 四聲),我心里一陣慌張。問了lr的公式推導(dǎo)。的確面的不好。校招的時(shí)候,找的內(nèi)推,當(dāng)時(shí)內(nèi)推要內(nèi)推碼,但是內(nèi)推有內(nèi)推碼也要筆試,但是內(nèi)推碼有一種是內(nèi)推白金碼,只有頭條技術(shù)員工有,且每人只有一個(gè),有了內(nèi)推白金碼,可以直接面試,免筆試,早面試。我就找人要了一個(gè)內(nèi)推白金碼,是頭條的第一批面試,掛了。校招內(nèi)推掛了,不能參加后續(xù)的校招,跟360一樣的。校招一面,主要問了簡(jiǎn)歷,問了項(xiàng)目,問了一些倒排索引,詞向量及復(fù)雜度相關(guān)問題。編程是leetcode 57 Insert Interval,這是leetcode的hard題目,根據(jù)大家的反應(yīng),頭條編程題問的普遍相對(duì)難一些。編程題我沒答上來,掛了也是很正常的事情。
15. ??低?/u>。實(shí)習(xí)沒投,校招投了。共三面。先是電話一面,后是去公司面試二面和三面,而面試技術(shù)面2v1,三面是hr面。一面就是簡(jiǎn)單的聊了聊,問了問。二面是聊聊平時(shí)用什么技術(shù),用什么網(wǎng)絡(luò),業(yè)內(nèi)(我的研究方向)主要用什么方法,業(yè)內(nèi)(我的研究方向)都在做什么,對(duì)**了解多少,有無轉(zhuǎn)**方向的意愿。也沒太多的問題,更多的是發(fā)散性的問題。hr面的時(shí)候,問了有多少offer了,因?yàn)橐呀?jīng)很晚了,我就說我現(xiàn)在有7家公司發(fā)了sp offer。后來沒給我發(fā)offer,我覺得可能主要在于我對(duì)**方向了解甚少,我本來也不是研究那個(gè)方向,但是平時(shí)還是有很多與**方向?qū)W習(xí)的機(jī)會(huì),我都不想去學(xué)。這給我一個(gè)提示,除了技術(shù)的深度,一定要提高的自己涉獵的廣度。
16. 微策略。 先是線下筆試,然后三面技術(shù)面。微策略是先去聽宣講會(huì),然后再線上面試。筆試面試都是全英的。筆試一小時(shí),題目還是不太難的。面試一面,13*16 = 244,問這事幾進(jìn)制,答:(1*x+3)*(x+6) = 2x^2 + 4x + 4 =》 x=7。證明:n(n^2-1) 對(duì)于任何n》=3的奇數(shù)都可以整除。答:可以數(shù)學(xué)歸納法,假定n=2k+1滿足條件,證明(2k+3)也滿足,最后得到[(2k+1)^3-(2k+1)] + 24k^2 + 48k + 24顯然成立。問一個(gè)字符串的全排列,我以為是leetcode 46. Permutations,實(shí)際上是leetcode 47. Permutations II。我按照46的思路寫的代碼,主要差別是47是有重復(fù)的。后來他提示是否有bug,我想到了47,然后改了重復(fù)的部分,但是竟然又忘了先sort下。所以這道題答的不好。這道題答的不好,我也反思過,自己不夠靈活,沒考慮那么多,直接對(duì)上題號(hào)了,思想僵(jiang)化了,一定要與自己做過的題目對(duì)一起做對(duì)比,注意差別。二面。給一段代碼,讓找出bug,里面涉及了指針和malloc和strcpy這些,我沒找出bug。編程題1,一段鏈表,反轉(zhuǎn)前n個(gè)節(jié)點(diǎn)。類似于leetcode 92. Reverse Linked List II。編程題2,leetcode 25. Reverse Nodes in k-Group。 編程題3,single number問題leetcode 136. Single Number,編程題4,leetcode 137. Single Number II。三面。編程題1, 121. Best Time to Buy and Sell Stock,編程題2, leetcode 123. Best Time to Buy and Sell Stock III,編程題3,leetcode 122. Best Time to Buy and Sell Stock II,編程題4,397 Integer Replacement 。編程題 2寫了兩種方法,思考花了些時(shí)間。編程題4給了幾種解法,但遺憾的是沒有給出最優(yōu)解。
17. 商湯。實(shí)習(xí)的時(shí)候筆試過了,邀請(qǐng)面試,我當(dāng)時(shí)有三四家都要面試,還要交ppt,聽說比較難,就沒去面。校招的時(shí)候筆試掛了。
18. face++,實(shí)習(xí)沒投,校招筆試掛。
19. 微軟。實(shí)習(xí)和校招都是筆試掛了。
20. 蘑菇街&美麗說。 實(shí)習(xí)投了沒理我。校招內(nèi)推把我簡(jiǎn)歷掛了,校招又投了一次,又掛了一次簡(jiǎn)歷。 freewheel,第四范式,hulu,快手等投了校招,沒消息,應(yīng)該是簡(jiǎn)歷掛了??粗車硕纪读随溂揖W(wǎng)的內(nèi)推,我就投了鏈家網(wǎng),結(jié)果鏈家的校招是線下筆試,我不知道,就錯(cuò)過了。
以上就是詳細(xì)的面試部分,下面是一些自己參考別人的經(jīng)驗(yàn)及自身的經(jīng)歷,總結(jié)的一些經(jīng)驗(yàn)教訓(xùn)吧,希望對(duì)自己是一個(gè)總結(jié),對(duì)學(xué)弟學(xué)妹們也希望能有所幫助吧。
1. 把握好時(shí)間實(shí)習(xí)、校招的時(shí)間表。實(shí)習(xí)分為內(nèi)推階段和校招階段。眾所周知,互聯(lián)網(wǎng)找工作的時(shí)間越來越早。2017年今年的情況是大部分公司在2-5月(實(shí)習(xí)包含內(nèi)推和校招兩階段)。先是內(nèi)推,后面就是校招。也有特別早的,比如網(wǎng)易游戲,去年12月左右就開始內(nèi)推了。內(nèi)推階段剛走完或者沒有走完就開始到了實(shí)習(xí)的校招階段了。校招也分兩個(gè)階段,內(nèi)推階段和(正式)校招階段。時(shí)間在6月底左右-11月。很多公司在6月底7月初就開始了,比如京東、阿里、騰訊等。京東以往貌似都是比較早的,今年也是早早的面試,早早地發(fā)了offer。除了內(nèi)推和校招階段,有的公司貌似還有提前批(京東貌似有)。
我自己的教訓(xùn)就是,校招投的太晚,以至于錯(cuò)過了很多面試機(jī)會(huì)。我為什么投這么晚呢?上面也分析過,有希望能把實(shí)習(xí)經(jīng)歷寫上去,也有自己想好好復(fù)習(xí)好好準(zhǔn)備的因素。實(shí)習(xí)的時(shí)候我投的就非常早,結(jié)果準(zhǔn)備的不充分,遇到了很多被拒,也算是找實(shí)習(xí)遇到的小后遺癥吧。投的太晚錯(cuò)過了騰訊、阿里的校招內(nèi)推階段,是非??上У?。阿里的校招內(nèi)推需要重新內(nèi)推,騰訊的實(shí)習(xí)的簡(jiǎn)歷會(huì)直接轉(zhuǎn)成校招內(nèi)推的,不用再推,可以更新下自己投的部門信息就行了。我自己也沒去更新簡(jiǎn)歷。總之吧,自己的簡(jiǎn)歷不夠好看,希望能刷新下簡(jiǎn)歷再投,以至于錯(cuò)過了時(shí)間。還有亞馬遜,亞馬遜寫的校招開始時(shí)9.10,結(jié)果我投的晚,人家9.5就開始第2輪還是第3輪筆試了。挺可惜的錯(cuò)過了。
2. 把握好內(nèi)推和實(shí)習(xí)轉(zhuǎn)正機(jī)會(huì)?,F(xiàn)在大家都招內(nèi)推了,然后內(nèi)推跟正式的也差不多了。無論從實(shí)習(xí)還是校招的結(jié)果來看,內(nèi)推會(huì)吸收很大一批人,所以留給校招的名額并不多,并且所有人都參加校招,所以競(jìng)爭(zhēng)是非常激烈的。所以大家一定要把握好內(nèi)推的機(jī)會(huì)。尤其校招的時(shí)候,很多公司的實(shí)習(xí)生都轉(zhuǎn)正了,占用了很多名額,所以校招的內(nèi)推和校招階段競(jìng)爭(zhēng)還是非常激烈的,學(xué)弟學(xué)妹們還是要加油。說是實(shí)習(xí)轉(zhuǎn)正,大家要千萬把握好機(jī)會(huì)。如果想在某個(gè)公司留下,我個(gè)人建議,優(yōu)先去該公司實(shí)習(xí)。實(shí)習(xí)轉(zhuǎn)正,尤其是實(shí)習(xí)的本部門轉(zhuǎn)正是最容易的。想在哪個(gè)部門工作,實(shí)習(xí)是一個(gè)非常簡(jiǎn)單又省事的途徑。
內(nèi)推的時(shí)候最好要找熟人內(nèi)推??梢詭兔Σ榭春?jiǎn)歷進(jìn)度。騰訊的內(nèi)部可以看到簡(jiǎn)歷評(píng)價(jià)S級(jí)、A+、A、B、C等。也可以看到面試官的名稱等信息。阿里的也可以看到面試官的名稱信息,并依此判斷某些信息。找熟人推,方便后續(xù)的聯(lián)系。還有最好直接推到自己想去的部門。如果自己有明確的部門,可以直接推到相關(guān)部門,如果不寫部門,很多都是直接進(jìn)公司簡(jiǎn)歷池。如果寫了,相當(dāng)于先在部門簡(jiǎn)歷池,然后進(jìn)公司簡(jiǎn)歷池,相對(duì)而言,相當(dāng)于多了一次機(jī)會(huì)。找熟人內(nèi)推的另一個(gè)好處是,如果是投的他的部門,他可以直接把簡(jiǎn)歷扔給他老大,邀請(qǐng)你去面試。
3. 寫好簡(jiǎn)歷,講好項(xiàng)目。簡(jiǎn)歷肯定是特別重要的,簡(jiǎn)歷是面試官對(duì)你的第一印象,一定要好好寫,如實(shí)稍微修飾的寫。自己的會(huì)的能講清楚明白的都寫上去,自己含糊其辭的搞不太清楚容易被問懵的就不要寫了。經(jīng)常更新自己的簡(jiǎn)歷。我自己的簡(jiǎn)歷面試完就會(huì)改一改,修一修,每次都總結(jié)一下面試,修繕一下簡(jiǎn)歷。簡(jiǎn)歷上的項(xiàng)目的細(xì)節(jié)之類的自己都要清楚地明白,一定不能給面試官問的答不出來,那面試官就很懷疑你的水平和項(xiàng)目是否你做的了。
4. 提高自己的編程水平。很多人都推薦劍指offer、leetcode。的確很不錯(cuò)的,我看現(xiàn)在劍指offer都更新到第二版了。至于編程提高到什么水平,劍指offer可以都看了,都搞明白了。我自己是刷了300道leetcode,刷了兩遍左右的。我看周圍的同學(xué)大都在100-200左右的樣子,也都找到的非常不錯(cuò)的工作。我這里的經(jīng)驗(yàn)是算法工程師的,很多公司的(比如滴滴、美團(tuán)、百度、阿里等)算法工程崗位的面試,一場(chǎng)面試都是分三塊,項(xiàng)目介紹、機(jī)器學(xué)習(xí)相關(guān)知識(shí)、編程題。一場(chǎng)面試一般就一道編程題。編程寫不出來就基本掛了。當(dāng)然面試也沒有非要按一定套路的,要看面試官的,面試官喜歡問什么,我們就答什么。有的公司非常注重編程,比如微軟,面試幾乎全是編程題,而且編程的要求比較高。頭條的編程題問的也很不容易。要是想找一般的互聯(lián)網(wǎng)公司,感覺看完劍指offer、刷leetcode 100-200道就差不多了。當(dāng)然這是我自己的判斷,僅供參考,對(duì)此不負(fù)責(zé)任。還有建議是刷題的時(shí)候,要做一下筆記,經(jīng)?;仡^看一看,我刷題的時(shí)候,使用***筆記(電子筆記類產(chǎn)品,避免廣告嫌疑)記錄一下題目,標(biāo)簽,解決思路與方法等。以后方便回顧。我自己就是經(jīng)??匆豢醋约鹤龅墓P記,比每次都重頭刷,思路清晰多了。建議嘗試一下。
5. 提高機(jī)器學(xué)習(xí)相關(guān)的技術(shù)水平。算法工程師一定會(huì)問機(jī)器學(xué)習(xí)相關(guān)的知識(shí),這一塊一定要好好的搞清楚明白了。我自己是看了李航老師的統(tǒng)計(jì)學(xué)習(xí)方法+部分prml+一些其他的學(xué)習(xí)。對(duì)這一塊內(nèi)容的理解應(yīng)該是決定是否發(fā)大offer的關(guān)鍵。一般編程題都能寫出來,寫不出來就掛了。你對(duì)機(jī)器學(xué)習(xí)相關(guān)的理解深入程度、好的實(shí)習(xí)經(jīng)歷、好的論文、好的競(jìng)賽都是面試中的亮點(diǎn)。如果你其他方面都不能閃光的話,就把對(duì)技術(shù)的理解深入作為切入點(diǎn),好好的專研下去吧。
-
工程師
+關(guān)注
關(guān)注
59文章
1571瀏覽量
68574 -
算法
+關(guān)注
關(guān)注
23文章
4623瀏覽量
93102
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論