313騰訊面試涼經&反思

本渣3月9號做了騰訊後臺實習筆試,由於算法能力太渣,只AC了兩題,第三題過60%(後來聽說第五題直接輸出0都能過40%。。。),本來覺得肯定跪了,結果3月12號收到郵件通知,約13號上午視頻面試。

視頻系統跟頭條一樣,用的牛客網的。

面試題目如下:

1.自我介紹

此時面試官提到部門主要用C++(我主要用Java),接下來的面試題會考C++,還問了我未來的規劃,我表示C++還是會一點的,可以試試,如果公司需要,轉技術棧也可以

2.計算機網絡:

TCP三次握手,四次揮手過程(這裏我還解釋了一下爲什麼要等待TIME_WAIT時間),TCP與UDP區別,TCP流量控制原理

3.C++:

指針和引用,類和結構體區別,內聯函數,STL,堆棧(C++內存空間不熟,詢問能否講JVM的內存空間,面試官改問數據結構)

4.操作系統:

進程間通信方式(信號量、管道、消息隊列、共享內存、套接字等),哪種效率高(內存映射),進程和線程的區別

5.講下常用排序算法

說了冒泡、堆排、歸併、快排、選擇排序,又問了冒泡、堆排、快排的複雜度

6. 現有5億QQ號數據如何排序

我的回答是分割成小塊數據,每小塊分別排序,然後合併結果

7.給了一段代碼計算結果

代碼大概如下

int calculate(){
    int countx=0;
    int x=9999;
    while(x){
        x&=(x-1);
        ++countx;
    }
    return countx;
}

看過劍指Offer就能想到,這是計算二進制表示中1的個數。

8.如何找數組內第二大元素

我的回答是用兩個指針,一個記錄最大值,一個記錄第二大值,當最大值更新時,把之前的最大值賦給第二個指針

9.leetcode兩數相加II

這題之前沒刷過,沒做出來,而且表現不好。

首先是太過於糾結性能,只想着用常數空間解決,實際上面試官之前問了棧,也算是提示吧,但是我沒想過用輔助空間解決。

其次是沒有跟面試官進行任何討論就開始寫代碼,面試官還問了我:“你都不跟我討論一下就開始寫代碼的嗎”。

沒做出來+不想就寫,應該是給面試官留下了不好的印象。

 

上午11點面完,面試官最後表示“今天就面到這裏吧”,聽到就知道涼了,下午兩點左右一查已經灰掉。

這次面試失敗的原因我自己覺得有以下幾點吧:

首先是筆試成績太差,做完在牛客網討論區一看,一羣4AC 5AC的大佬,我這種2AC的確實很難走下去。

其次是C++基礎不夠,雖然說面試官問的都回答了,但是事後百度一下,就發現自己回答的還是太淺薄,公司也不是做慈善的,比起招一個技術不熟的人進去半學半做,當然會傾向於選擇技術熟練的。

最後也是我自己認爲最大的問題,就是太過急於回答問題。比如說兩數相加II這題,如果能夠和麪試官確認可以使用輔助空間,想到用棧解決還是不難的,再比如5億數據排序這題,我也是聽完題直接就開始回答了,昨晚有同學看到我發的說說,來和我討論,我才發現很多地方我都沒去考慮,答案很顯然不能讓面試官滿意。

面完試繼續刷劍指Offer的時候,正好看到第四章,開頭的“面試官談面試思路”就提到:

一個合格的應聘者應該在他做事之前明白自己要做的事情究竟是什麼,以及該怎麼做。一開始就編碼的人員,除非後面表現非常優秀,否則很容易通不過。

感覺說的的確很有道理,通過和麪試官討論,詢問各種條件,其實也是向面試官證明,自己的思考很縝密,比如說對邊界問題(空值、零值等)的界定,可以證明自己對異常情況有思考和把控,對於時間和空間性能的界定,不但證明自己編程時有優化的思想,像兩數相加II這種題,還可以得到啓發。

這次面試雖然最後涼了,感覺還是有啓發的,後面繼續投簡歷的時候,還是首先儘量投技術棧相合的,其次我本身算法水平不足,最近還是要多刷題,最後在面試的時候儘量絮叨點,多跟面試官討論。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章