騰訊互娛面試流程
15號晚上7點多,正在炒菜做飯,騰訊忽然打電話來問我對他們的Linux C++的職位是否感興趣,我表達了我感興趣之後,就開始了一段簡短的電話面試,電話面試主要內容:C++和TCP socket通信的一些基礎知識。之後就問我一道算法題:10億個整數,隨機生成,可重複,求最大的前1萬個。當時我一下子就蒙了,沒反應過來,何況我還正在燒着菜呢,所以我就沒細想,説了一個連我都鄙視我的思路:我説導入數據庫,然後用select語句選出最大的前1萬個。可能我的答案連面試官都無語了,所以他就沒再往下問了,不過他還是通知我明天16號早上去騰訊大廈筆試,由於我明天沒空,就推遲到了17號早上10點。至此,整個電話面試就結束了。過後,我想了想,10億個整數選前1萬個大數,其實可以用:分治法+hash+多路歸併排序來做,比如説,先把10億個整數對1000取模,存儲到1000個文件中,然後對每一個文件進行內部排序(比如快速排序,從大到小排序),然後再對這1000個文件進行多路歸併,取出前1萬個最大的數即可。
17號早上,懷着忐忑不安的心情,終於來到了騰訊大廈,在前台説明情況後,領了一個臨時訪問牌,一個看起來30多歲的中年人(暫且稱為面試官A)接待了我,給我一份筆試題,時間為1小時。5道程序輸出寫結果或者程序找錯,5道編程題。這5道編程題大概為:
1、將一個4字節的整數的二進制表示中的001替換為011,輸出替換後的整數。
2、將一個數組右移幾位,比如數組為1 2 3 4,右移一位即為4 1 2 3。
3、輸入一個表示十六進制的字符串,轉換為十進制的整數輸出。
4、單鏈表反轉。
5、一個8*8的方格子,A點在左下角,B點在右上角,求A點到B點的最短路徑有多少條。
第1題,我理解錯題意了,順便鄙視一下自己,我當時的想法是這樣的:整數有正有負,不能拿該整數直接右移,所以我用了一個unsigned int mode = 7進行左移,是直接拿整數與mode相與,得到的結果與001比較,相同就替換,不同就把mode左移3位再與整數相與。面試官A直接指出我的思路有問題,相等替換後mode左移3位,不相等應該將mode左移1位,而不是左移3位,只有相等才把mode左移3位。這裏順便説一下,筆試完之後,面試官A是拿着你的筆試題一題一題的問你,根據你的題目結果要你説出你的計算過程的。答案:將一個4字節整數的二進制表示中的001替換為011
第2題,由於這道題我之前做過,思路就是:先把左邊反轉,再把右邊反轉,最後把整個數組反轉就可以得到結果。但是悲劇的是,面試官A要我用數學證明我這種方法的正確性,o(□)o,最後我只能説:我之前做過這道題。如果當時,我能套用線性代數中矩陣的轉置的思想來説明這道題,那麼這道題的證明可能説得過去。所以説,要對你寫的.代碼負責,要知其然,更要知其所以然。類似題目:左旋轉字符串
第3題,進制轉換,簡單,不過要分別考慮大小寫字母。
第4題,簡單,就不説了。答案在我的另一篇博文:單鏈表逆置
第5題,我也是想錯了方向,由於沒有時間了,代碼我沒寫,我只寫了個思路:即從A點開始用廣度優先搜索,第一個到達B點的肯定是最短路徑,記下此時A點到B點的步數,然後統計從A到B點等於這個步數的個數。其實,廣度優先搜索只能求出最短路徑,但不能求出所有的最短路徑個數,要想求出所有最短路徑的個數,要用回溯法(後面我會給出代碼)。想想當時面試的時候還振振有詞的向面試官A講解我的思路,也不知道面試官A是怎麼想的,也不指出我的錯誤,怕是怕我難堪吧。
面試官A面完之後已經是12點多了,這是又來了一個27、8歲的大哥(暫且稱為面試官B)來面試我,一上來就給我一道編程題,實現大數相加,給出代碼。我又刷刷的寫了20多分鐘,認為沒問題了,就拿給面試官B看,看了一小會,就指出我的代碼錯在什麼地方了,(哎,畢竟是手寫代碼,錯誤肯定很多),要我改正,一步一步的引導我將我的代碼改正,非常和藹的一位大哥哥,也是和我聊的最久的,聊到了下午2點多,差不多兩個鐘頭,期間主要問的問題各種各樣都有:
1、技術相關:map的實現機制是怎麼樣的啊;模板類的偏特化;動態加載dll和靜態加載dll的區別;線程和進程的區別;TCP的四次揮手協議;給定兩個數組a和b,求所有在a數組中不在b數組的元素;快速排序的平均時間複雜度是多少,證明它的平均時間複雜度等。這些問題我都一一説出了我的答案,主要是我看過一點
2、其他:3點一刻,求此時時針和分針夾角的度數;對騰訊這個公司怎麼看;為什麼離職;個人規劃等。
面試官B面完之後,叫我先出去吃午飯,下午回來還有一次面試。吃飯歸來之後,又來了一位也是27、8歲的大哥(暫且稱為面試官C),給我幾道邏輯題,要我20分鐘寫出答案,在我和他講解我的邏輯題之後,他問了幾個我不熟悉的或者已經記不清答案的問題:一個進程由哪些方面構成,我記得
總結:
1、沒有大公司面試經驗,並且由於事先也完全沒有做準備,好像趕鴨子上架
2、基礎一定要紮實,C++,數據結構和算法,操作系統,網絡編程要熟悉。
3、對自己寫的代碼負責
4、騰訊的員工非常友好
近期目標:
1、看數據結構和算法
2、熟悉C++編程規範。
3、多看別人寫的優秀源碼,爭取自己寫的代碼簡潔易懂
最後:
給出筆試的最後一道編程題的題目和我寫的答案,如果有任何問題,請指正。
題目:給定一個8*8的方格子,如下圖所示,求A點到B點的最短路徑有多少條?用算法實現。
答:從圖中可以看出,A點到B點的最短路徑為16,即A點橫走8小格,縱走8小格才能最快到達B點,這是排列組合的問題,即從最短路徑16中選取8個橫走的小格子(或者從最短路徑16中選取8個縱走的小格子)。所以從A點到B點的最短路徑條數,直接可以算出來,即為:
代碼如下:
size_t g_num = 0; //統計A點到B點的最短路徑條數
void shortestPathNumber(char grid[9][9], int row, int col, int &step)
{
if (row < 0 || row > 8 || col < 0 || col > 8 || grid[row][col] == '*' || step > 16)
{
return;
}
if (row == 0 && col == 8)
{
if (step == 16) //已到達B點,且等於最短路徑16,就累加
{
g_num++;
}
}
else
{
grid[row][col] = '*'; //標記該點已訪問
step++;
shortestPathNumber(grid, row, col + 1, step);
shortestPathNumber(grid, row + 1, col, step);
shortestPathNumber(grid, row, col - 1, step);
shortestPathNumber(grid, row - 1, col, step);
grid[row][col] = '.'; //回溯
step--;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
char grid[9][9] = {0};
int step = 0;
shortestPathNumber(grid, 8, 0, step); //從A點開始搜索
cout<<"A點到B點的最短路徑條數為: "<<g_num<<endl;< p="">
return 0;
}
相關文章
-
新浪百度騰訊等互聯網公司面試流程是怎樣的?
新浪百度騰訊等互聯網公司面試流程是怎樣的?對於從事IT的職場人士,絕大部門都想進入那些巨頭公司。除了薪水高、辦公環境好,發展更有前景外,更讓人有職業自豪感。雖然人才日益缺乏,但並非誰都可以進入互聯網巨頭公司的,它 -
騰訊面試流程
面試網為你介紹一下騰訊的一般面試流程:騰訊校園招聘面試流程:一面,技術,基礎知識,算法,數據結構,網絡,操作系統等。二面,技術,針對以往的項目具體提問,或者紙上寫程序。三面,hr面。運氣不好的沒下文,否則給offer。騰訊社會招聘面 -
騰訊內推之後需要什麼流程?大概幾天會有電話面試通知?
經過內部推薦後,投簡歷給項目組長後,要經過人力之類的部門?具體流程是什麼?大概要花多少天呢?成功跟失敗的標誌是什麼呢?謝謝 -
騰訊PHP開發工程師面試試卷
1. 請對pOSIX風格和兼容perl風格兩種正則表達式的主要函數進行類比説明ereg preg_matchereg_replace preg_replace2. 請説明在中safe_mode開啟之後對於pHp系統函數的影響3. pHp5中魔術方法函數有哪幾個,請舉例説明各自 -
騰訊的交互設計實習生筆試
第一大題1-3 能力行政測試第二大題解析題5分一題1. Web Widget,2. 電容式屏幕和電阻式屏幕的比較3. 增強現實。4.一個html代碼 超鏈接第三大題(選擇題為主)的組件有哪些,YUI EXT 等2.四大主流系統的產品:apple,ibm,微軟0. -
「分享」 面試騰訊全過程 希望對大家有所幫助
篇一敬愛的團組織:中國共產主義青年團是中國青年的先進組織,是中國共產黨的有力助手和後備軍,是中國青年學習馬列主義、毛澤東思想、鄧小平理論和“三個代表”重要思想的大學校,是一個有紀律的組織,是中國革命和建設各歷史 -
公司面試題之:騰訊PHP工程師筆試題
1. 請對pOSIX風格和兼容perl風格兩種正則表達式的主要函數進行類比説明 ereg preg_match ereg_replace preg_replace 2. 請説明在中safe_mode開啟之後對於pHp系統函數的影響 3. pHp5中魔術方法函數有哪幾個,請舉 -
社招面試騰訊 PM 的面試經歷
從6月份一直面試到9月份了,準備在這個月畫個句話。不知道是流程太長,還是個人能力不這麼牛,導致用人部門一直在猶豫,也可能是第3面表現不太好。不過總算得到消息要第4輪了,部門經理的面試。有沒有過來人和我説説經驗?PS:同 -
應聘騰訊前端開發工程師一般會面試寫什麼問題
如題,應聘騰訊前端開發工程師一般會面試寫什麼問題啊?? -
騰訊面試題
1. 自我介紹2. 項目介紹,用了什麼算法3. TCP/IP 三次握手,??攻擊4. vector怎麼實現動態空間分佈;map用什麼實現的;紅黑樹是什麼,有什麼特點;hashtable怎麼實現的5. 一個結構, 有一個long和char的變量,它們的大小是多少;有