面試牛人的總結值得看

2021-03-17 07:54:36 字數 3578 閱讀 6075

昨天剛面的,熱乎乎的~

人人的校招還沒正式開始,我是被學校的師兄內推的。面的是技術崗,演算法策略方向的,問的主要都是演算法題。一共面了3輪,我下午2點過去,2點多開始面一直沒間斷的面到5點半才結束。

第一面的面試官是個挺靦腆的小哥,應該是剛工作吧。他就出了兩個題,也不難。

第乙個題是:給出乙個字串,找出其中只出現一次且位置最靠前的那個字元。

很簡單吧,遍歷一遍字串,記錄下來每個字元出現的次數和第一次出現的位置就好了。然後他讓我寫**實現,也沒什麼問題。

第二個題是:有乙個鍊錶,除了正常的指向下個結點的指標外還可能有乙個額外的指標指向鍊錶中某個結點。換言之結點的資料型別是

struct node

我就想,先把基本的鍊錶結構複製了,然後問題就在於怎麼確定extra指標指的是哪個點,這就需要能夠唯一的確認原煉表中的每個結點。我一開始說給每個結點標號,但是面試官說資料型別已經封裝好了不能再往裡寫東西了。最後用記憶體位址作為每個結點的key,把原表和新錶的結點的位址的對應關係存起來。

然後他讓我寫**實現。

結果在我寫**的時候他就走了,說是找二面的面試官。於是剛才那個題的**是二面的面試官看的。

二面的面試官算是個大叔吧,應該是中層leader,人挺好的。我先跟他說了一面面試官給我留的題目和我的思路,然後讓他看我的**。然後他就針對我的**問。我的**裡遍歷鍊錶時有一句

while(p!=null)

他就問我如果p一直不等於null怎麼辦? 我說如果是個正常的鍊錶的話p走到尾部的時候肯定就是null呀。面試官說那可能是不正常的鍊錶,比如迴圈鍊錶p就永遠不會是null。

我說我沒考慮到這點。如果那樣的話應該先判斷這個鍊錶是否有環,如果沒有就沒事,如果有的話就要給每個走過的結點作標記,當訪問到乙個已經標記過的結點的時候說明已經遍歷一遍了。

然後他就問我如何判斷鍊錶是否有環。我一開始說了乙個:把訪問過的結點都存起來,每當訪問乙個新結點的時候看這個結點是否被訪問過就可以了。如果用雜湊表來存那時間複雜度就是o(n)。

他說這樣可以,但是要用到乙個o(n)的輔助空間,還有種只用o(1)的空間也是o(n)時間的辦法,不過會比我說的時間上慢一點。我一開始想不出來,讓他提示了一下,然後就明白了,用兩個指標在鍊錶上跑,乙個步長為1乙個步長為2,如果有環的話步長為2的指標會追上步長為1的指標與之重合。

ps:回來之後在網上搜,發現這個問題其實是很常見的乙個問題。不過去面試之前沒看到過。

然後關於鍊錶他又問了幾個問題,挺零碎的記不清了。

還有就是他問我如何檢索位址對錶會比較快,我一開始就說了乙個可以先排序然後二分查詢。他說有沒有更快的,我想了想,想到用雜湊就好了。

到這兒一面的那道題就算是完了。然後他又給我出題,因為我簡歷上寫的專案經歷有乙個是資料庫方向的,他就讓我寫乙個sql的**。其實我資料庫學的不好,寫的不好。

然後他又讓我寫乙個atoi的函式,就是把乙個字串轉為int。他說明了這個函式其實很簡單,但是希望我能考慮的全面一些。

我就考慮到:

1.可能傳進來乙個空串;

2.傳進來的字串不是數字,可能有其他字元;

3.給的字串對應的數字太大可能越界。

我先問他如果越界了怎麼辦,需不需要自己定義乙個大整數型別作為返回結果?他說不用了報錯就可以了。這樣就簡單多了。

然後在寫**的過程中,寫到判斷傳進來的字串是否都為數字的時候,我想到也許數字開頭會有個'+' '-'什麼的,這種形式不應該視為錯誤輸入,應該算一下把結果輸出了。

最後寫好了給面試官講了我的想法,他說我做的挺好的,考慮的非常全面。我覺得應該就是我考慮了帶符號數這一點出乎了他的預期吧。他又問我那你考慮過科學計數法嗎?

我說這個沒考慮到,不過也是可以做的。他說我隨便說一下科學計數法確實挺麻煩的你能考慮到這些已經很不錯了。

然後他又問我想做哪方面的工作,前端還是做後端、想做前台的業務還是後台的資料處理。我說想做前端。貌似三面的面試官是他根據我的回答給我找的。

然後他讓我問他問題。因為我不知道還有3面,就一直問他問題,問了好多,包括:他是做什麼的(因為我覺得他又精通演算法又懂資料庫好像挺厲害的),他們部門都有什麼專案,能不能從技術轉產品(因為其實我不想一直當碼農,想做產品經理),公司有沒有培訓和學習的機會(每次面試我都會問這個問題為了讓面試官覺得我很好學,嘿嘿)等等。

結果他跟我說我去給你找三面的面試官吧,你如果還有別的什麼問題問他好了。囧,這時我才知道居然還有一面。我本來都放鬆了的。

三面的面試官是個胖胖的大哥哥,人也挺好的。他先讓我做自我介紹,然後我就厚著臉皮把自己誇了一番,不過我說自己好的地方都是有具體事例支撐的,所以貌似得到了他的認可。然後他問我有沒有職業方面的規劃,我說有啊,我想當產品經理。

然後解釋了一下我為啥想當產品經理(因為我不想一輩子coding啊!我喜歡並且擅長提出有意思的點子,不喜歡別人告訴我做什麼我就去做什麼!),以及為啥不直接做產品要先做技術(因為我大學4年學的是計算機,不做技術又覺得學的東西浪費了——我沒說做技術錢多雖然這也挺重要的)。

然後他問了我一些產品方向的問題,因為他是負責人人網的廣告系統的,他就問我,怎麼讓商家認為他們的廣告是有效的,又怎麼讓使用者更願意去點那些廣告。

我說我是來面技術的,沒想到還會問產品方面的問題,我只能隨便說說了,說的不好別怪我~(其實我之前有麵過產品方向的職位還是有一些了解的)我說對商家你可以給他們資料啊,現在人人網的流量還是很大的,資料應該不會太難看;然後廣告要做的精準什麼的,這樣商家才願意買使用者也願意點。

說到精準的時候他又問了人人網的頁面廣告和百度的關鍵字廣告的比較,我說關鍵字廣告也許更精準但是那只有主動去搜那個關鍵字的使用者才會看到,也就是說使用者是本來就有需求而百度把這個需求實現了。但人人網的廣告是根據使用者的興趣愛好挖掘出來的,可能會讓使用者產生他們原本沒有的需求。還有人人網的sns屬性有利於廣告的傳播,可能乙個**活動被某個同學看到了,那麼他的有同好的好友也很可能被影響到,這也是關鍵字廣告不具有的屬性。

他又問可以通過哪些資訊來評估使用者的興趣愛好,這些資訊的重要程度如何排名等等。

我還說可以搞有獎**什麼的,因為微博上整天都在搞。結果他又問了微博和人人的區別,我說人人是實名制的微博則沒有,微博具有**屬性而人人只是乙個社群。

總之這方面一直聊了好多好多。感覺這些問題完全不亞於產品面試裡的問題啊!

結果聊完了居然又讓我做題......****。

不過他給的題一點也不難,就是把1到n*n的數列印成乙個方陣,按照從外層往裡層轉的順序,如圖:

1234

1213145

1116 15 6

10 9 8 7

我說這道題其實我大學一年級的時候做過,當時的做法是一次列印一圈,每次調整起始位置引數直到起點和終點碰到一起了。他說既然你做過的話那就給你加個限制,用遞迴來做。

結果我做了之後才意識到,用遞迴比我之前用的本方法簡單多了。。。不過誰叫那時候我才大一,對於遞迴的理解不夠,只會寫迴圈 = =

寫完這個題對我的考核就結束了,他讓我問他問題。我就隨便問了幾個,因為2面的時候問的挺多的了。我問他我如果進來的話是在他手下幹嗎?

他說是的。我覺得不錯因為這個面試官感覺人不錯。我又問他覺得我怎麼樣,能不能拿到offer(因為我覺得自己表現還不錯嘛所以敢這麼問),當然他不會直接說定的,但他說對我還是挺滿意的,嗯,那應該就是沒什麼問題了,挺開心的。

最後我問他能不能要他**好嗎,他說你要這個幹嘛,我說既然我進來了是跟著你幹那先多了解一下唄,他就告訴我了。

所以就是這樣。3個多小時不間斷的做題、說話,把我累的不行。不過好在最後結果不錯,還是挺開心的。

職場牛人的成功面試經驗

一 面試前的準備 接到面試通知後,你該做些什麼呢?1 迅速查詢該企業的原始招聘廣告。重溫該企業的背景情況 一般在招聘文選中有所說明 以及應聘職位的要求是什麼等等。如果你備有幾種不同的求職信,應當了解投出的是哪一種求職信,最好再看一遍,做到心中有數。2 查詢交通路線,以免面試遲到。接到面試通知後,應仔...

高考前最值得看的作文佳作

一年一度的高考即將來臨,廣大考生正在為之奮鬥,為之努力。高考作文究竟該如何應對,向什麼方向努力,就成了迫切需要關注和指導的問題。為幫助同學們,我們特此輯錄佳作20篇,邊點評邊指導,以期能給廣大考生有所啟示。我們以為,高考作文的質量高低,首先取決於思想含量的高低,沒有深湛的思想,沒有深邃的思辨,即使文...

值得一看的勵志文章

我始終相信生活不會有絕境。不管有多少困難 挫折 失敗,我都繼續奮勇向前。我始終相信,中國詩人食指所說的一句話,叫做 相信未來,熱愛生命 永遠相信你的未來 相信你的未來會比現在更好,相信你的生命不管處於多麼灰暗的狀態,只要你還活著,未來就能閃現出光輝。信念和激情這兩個詞是連在一起的,激情是信念的一種外...