資源描述:
《騰訊互娛面試流程》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、騰訊互娛面試流程 15號晚上7點(diǎn)多,正在炒菜做飯,騰訊忽然打電話來問我對他們的LinuxC++的職位是否感興趣,我表達(dá)了我感興趣之后,就開始了一段簡短的電話面試,電話面試主要內(nèi)容:C++和TCPsocket通信的一些基礎(chǔ)知識。之后就問我一道算法題:10億個整數(shù),隨機(jī)生成,可重復(fù),求最大的前1萬個。當(dāng)時我一下子就蒙了,沒反應(yīng)過來,何況我還正在燒著菜呢,所以我就沒細(xì)想,說了一個連我都鄙視我的思路:我說導(dǎo)入數(shù)據(jù)庫,然后用select語句選出最大的前1萬個??赡芪业拇鸢高B面試官都無語了,所以他就沒再往下問了,不過他還是通知我明天16號早上去騰訊大廈筆試,由于我明天沒空,就推遲到了17號早上10點(diǎn)。至
2、此,整個電話面試就結(jié)束了。過后,我想了想,10億個整數(shù)選前1萬個大數(shù),其實(shí)可以用:分治法+hash+多路歸并排序來做,比如說,先把10億個整數(shù)對1000取模,存儲到1000個文件中,然后對每一個文件進(jìn)行內(nèi)部排序(比如快速排序,從大到小排序),然后再對這1000個文件進(jìn)行多路歸并,取出前1萬個最大的數(shù)即可?! ?7號早上,懷著忐忑不安的心情,終于來到了騰訊大廈,在前臺說明情況后,領(lǐng)了一個臨時訪問牌,一個看起來30多歲的中年人(暫且稱為面試官A)接待了我,給我一份筆試題,時間為1小時。5道程序輸出寫結(jié)果或者程序找錯,5道編程題。這5道編程題大概為: 1、將一個4字節(jié)的整數(shù)的二進(jìn)制表示中的001替
3、換為011,輸出替換后的整數(shù)?! ?、將一個數(shù)組右移幾位,比如數(shù)組為1234,右移一位即為4123?! ?、輸入一個表示十六進(jìn)制的字符串,轉(zhuǎn)換為十進(jìn)制的整數(shù)輸出。 4、單鏈表反轉(zhuǎn)?! ?、一個8*8的方格子,A點(diǎn)在左下角,B點(diǎn)在右上角,求A點(diǎn)到B點(diǎn)的最短路徑有多少條?! 〉?題,我理解錯題意了,順便鄙視一下自己,我當(dāng)時的想法是這樣的:整數(shù)有正有負(fù),不能拿該整數(shù)直接右移,所以我用了一個unsignedintmode=7進(jìn)行左移,是直接拿整數(shù)與mode相與,得到的結(jié)果與001比較,相同就替換,不同就把mode左移3位再與整數(shù)相與。面試官A直接指出我的思路有問題,相等替換后mode左移3位,不相等
4、應(yīng)該將mode左移1位,而不是左移3位,只有相等才把mode左移3位。這里順便說一下,筆試完之后,面試官A是拿著你的筆試題一題一題的問你,根據(jù)你的題目結(jié)果要你說出你的計算過程的。答案:將一個4字節(jié)整數(shù)的二進(jìn)制表示中的001替換為011 第2題,由于這道題我之前做過,思路就是:先把左邊反轉(zhuǎn),再把右邊反轉(zhuǎn),最后把整個數(shù)組反轉(zhuǎn)就可以得到結(jié)果。但是悲劇的是,面試官A要我用數(shù)學(xué)證明我這種方法的正確性,o(□)o,最后我只能說:我之前做過這道題。如果當(dāng)時,我能套用線性代數(shù)中矩陣的轉(zhuǎn)置的思想來說明這道題,那么這道題的證明可能說得過去。所以說,要對你寫的代碼負(fù)責(zé),要知其然,更要知其所以然。類似題目:左旋轉(zhuǎn)字
5、符串 第3題,進(jìn)制轉(zhuǎn)換,簡單,不過要分別考慮大小寫字母?! 〉?題,簡單,就不說了。答案在我的另一篇博文:單鏈表逆置 第5題,我也是想錯了方向,由于沒有時間了,代碼我沒寫,我只寫了個思路:即從A點(diǎn)開始用廣度優(yōu)先搜索,第一個到達(dá)B點(diǎn)的肯定是最短路徑,記下此時A點(diǎn)到B點(diǎn)的步數(shù),然后統(tǒng)計從A到B點(diǎn)等于這個步數(shù)的個數(shù)。其實(shí),廣度優(yōu)先搜索只能求出最短路徑,但不能求出所有的最短路徑個數(shù),要想求出所有最短路徑的個數(shù),要用回溯法(后面我會給出代碼)。想想當(dāng)時面試的時候還振振有詞的向面試官A講解我的思路,也不知道面試官A是怎么想的,也不指出我的錯誤,怕是怕我難堪吧?! ∶嬖嚬貯面完之后已經(jīng)是12點(diǎn)多了,這是
6、又來了一個27、8歲的大哥(暫且稱為面試官B)來面試我,一上來就給我一道編程題,實(shí)現(xiàn)大數(shù)相加,給出代碼。我又刷刷的寫了20多分鐘,認(rèn)為沒問題了,就拿給面試官B看,看了一小會,就指出我的代碼錯在什么地方了,(哎,畢竟是手寫代碼,錯誤肯定很多),要我改正,一步一步的引導(dǎo)我將我的代碼改正,非常和藹的一位大哥哥,也是和我聊的最久的,聊到了下午2點(diǎn)多,差不多兩個鐘頭,期間主要問的問題各種各樣都有: 1、技術(shù)相關(guān):map的實(shí)現(xiàn)機(jī)制是怎么樣的啊;模板類的偏特化;動態(tài)加載dll和靜態(tài)加載dll的區(qū)別;線程和進(jìn)程的區(qū)別;TCP的四次揮手協(xié)議;給定兩個數(shù)組a和b,求所有在a數(shù)組中不在b數(shù)組的元素;快速排序的平均
7、時間復(fù)雜度是多少,證明它的平均時間復(fù)雜度等。這些問題我都一一說出了我的答案,主要是我看過一點(diǎn)、,所以沒覺的有什么難度,好像他也覺得我回答的還不錯。 2、其他:3點(diǎn)一刻,求此時時針和分針夾角的度數(shù);對騰訊這個公司怎么看;為什么離職;個人規(guī)劃等?! ∶嬖嚬貰面完之后,叫我先出去吃午飯,下午回來還有一次面試。吃飯歸來之后,又來了一位也是27、8歲的大哥(暫且稱為面試官C),給我?guī)椎肋壿嬵},要我20分鐘