騰訊面試經驗2

2021-08-23 14:42:44 字數 3364 閱讀 7982

地點:重慶萬達艾美酒店。

資訊:女,本科應屆生,面試後台開發崗位。

終於輪到我面試了,地點是7樓,走出等候室,仍然是剛剛的小哥哥給我帶路,幫我刷卡按電梯,並一直誇讚和鼓勵我,我苦笑一句說我自己也覺得很意外,而且我看過來面試的都是研究生,他很溫柔地告訴我沒關係,面試官對研究生的要求和本科生的要求是不一樣的哦~最後送了我乙個微笑和好運祝福後讓我關上了電梯門。

電梯到達7樓,做了一次深呼吸後,我面帶微笑走進了726房間,面試房間的布局和我想象中的一樣,面試官的狀態也和我想象中的一樣 —— 一副剛起床的狀態!面試官坐在書桌的電腦前等我的到來,我在走向他的途中用餘光掃到旁邊床上被子是凌亂的,床邊他的靴子東倒西歪並向外吐著襪子,床頭櫃上還有開啟未吃完的薯片。面試官看起來沒有很好相處,我會這麼覺得,大概是因為他沒有回應我的微笑吧。從進門開始我就介紹了我自己的名字,並一直面帶微笑。

面對著他坐下後,首先被要求做個簡單的自我介紹,名字+大學+專業,然後說明我是深圳過來重慶面試的,他很驚訝我來自深圳,同時也很好奇,我原本以為他是知道我9月份在深圳已經面試過的,而且對於每個已經面試過的同學面試官都會寫乙份評語,我也以為他已經看過評語,看他的反應大概是什麼都不知道,所以我做了乙個詳細的說明之後便接著我的自我介紹模版說下去。待我說完,他估計是看到了之前面試官對我的評語之類的,沒有再問我簡歷上的內容,直奔主題——做題!一共做了三道題。

第一道題是演算法設計題:有n個陣列,每個陣列有m個元素且呈公升序,求這n個陣列的並集。例如:第乙個陣列有{1,2,3},第二個陣列有{2,3,5},則合併後為{1,2,3,5}。

(1)我首先想到的是犧牲空間節約時間的辦法,申請乙個超大的陣列a,初始化為0,遍歷這n和陣列,將元素作為a陣列的下標訪問a陣列並置1;n個陣列訪問結束之後,再遍歷一次a陣列,其中值為1的下標的集合就是合併後的結果。聽我講完,他首先問我時間複雜度和空間複雜度,時間複雜度是o(n*m),空間複雜度是元素的取值範圍。面試官提示我本道題是在64位系統下實現,而我需要的空間大小為元素取值的範圍,也就是說最多能達到2^64遠大於1gb,所以這個方法是不可行的。

那麼n個呢?遞迴的話容易實現,但不一定是最好的,如果每個陣列乙個指標會不會空間太大呢?只有n個陣列,只需要n個指標,n個指標同時進行比較,每次找最小的乙個數記錄(問題簡化了,相當於在n個數中尋找最小的乙個數)。顯然n的指標更佳令人滿意。那這n的指標如何進行比較?我先說的是快排的拆分函式(以乙個數為基準,比該數小的在左邊、大的在右邊),而這個基準數是隨機的,所以呼叫一次拆分函式,返回函式中基準值下標,如果下標大於1,再對下標的左邊部分繼續呼叫函式;如果下標小於等於1,直接返回下標為0的元素。這樣的做法減少了遞迴次數,不必使得整個序列有序。但是這個做法還是不能讓面試官滿意。n個數中,只是找乙個最小的數,我還能想到的是堆,但是我對於堆不熟悉,只知道當記錄數很多的時候用堆最合適。我也是這樣同跟面試官說的,最後再次問了時間和空間的複雜度,我理解的堆排序時間複雜度是o(nlogn),但是這個複雜度是將整個序列變得有序的複雜度,而我們只需要找乙個最小的,所以我的回答是,若堆排序的時間複雜度是x,那麼這種解法的時間複雜度是o(n*m*x),空間複雜度為常數。

第二道題是寫**,讓我寫出回文數的**實現,給了我乙個函式的定義,讓我實現該函式。當然我會故意問一位數的數字算不算回文數!這道題沒什麼難度,所以我不慌不忙地寫,也把所有邊界情況都考慮到位。寫了乙個最簡單的**:

1

//-1:異常2//

0:不是回文數3//

1:是回文數

4#define n 100

5int palindromic(int

value)6;

910//拆分數字,將每一位存放進乙個陣列

11if(x==0)12

return1;

13while(x!=0)14

1819

//從兩頭開始比較

20 start = 0, end = k-1;21

if(start >end)

22return -1;//

不可能發生

23else

if(start ==end)

24return1;

25else

2632

if(start

33return0;

34return1;

35}36 }

回文數

後來仔細想想以前的**,還有更簡單不易錯的**:

1

//0:不是回文數2//

1:是回文數

3int palindromic2(int

value)414

15if(value ==reverse_value)

16return1;

1718

return0;

19 }

回文數(優化)

第三道題他說是設計題,讓我設計一種方法來測試伺服器的壓力,聽完他的題目說明,我是一臉萌比的,大概是問的「假設:伺服器tps=100000,怎麼測試伺服器壓力」,很尷尬的向他求助,能不能給點提示,他又說「假設乙個執行緒tps=1000」,結合他的提示,我只能把與相關的知識全部說出來,如執行緒的通訊方式:(1)管道(2)系統ipc(訊號量、____、訊息佇列)(3)套接字socket,其中漏了乙個,因為這個問題毫無頭緒,我已經有點著急了,接著繼續說,要想達到100000的tps,肯定需要多個執行緒,我想用訊號量來實現,例如我100個程序就能達到想要的tps的話,我給這些程序100個鎖來實現。他忍不了,說用共享記憶體來實現多個程序的通訊更快,我恍然大悟,哦!!我遺漏了共享記憶體......我急忙贊同他的說法,他又接著問我這多的執行緒要怎麼管理呢?這...我只能認輸不知道。他告訴我,需要用乙個執行緒來管理其他多執行緒的併發操作。

三個問題問完之後,對於面試結果,我心裡還是有點b數的,面試官並沒有走流程讓我問他問題,說今天的面試就到此吧。我起身拿起包打算離開,但還是很像問他問題,所以我先問他我能否向他提乙個問題,他同意之後,我問他我們這樣的本科應屆生有什麼建議和意見嗎?他還是很耐心的跟我講了一些對應屆本科生的建議,最後說我閱歷太少,經驗不夠,基礎功不紮實。我回應了幾句,並向他表示了真心的感謝之後離開了房間。

面試官的評價很到位,赤裸裸的現實,還是回校補補營養吧!不過這份經歷還是值的,乙個毫無經驗的應屆本科生同幾個研究生來競爭同樣的職位,雖然結果很明顯,但還是非常感謝面試官給我這個面試機會,而且整個面試過程中還那麼耐心的引導我!

騰訊面試經驗

三面是總監面,本人不幸被拒了,這次面試沒有問專案相關的問題,專案的問題是放在二面問的。三面給人的感覺要求很嚴,有些問題看似基礎,但問得很細,稍有閃失就被pass,絕不能有模稜兩可那種回答,以下是面試題 1 tcp三次握手的過程,accept發生在三次握手哪個階段?2 tcp流,udp的資料報,之間有...

騰訊面試小經驗(一)

我是在長沙面的試,下面的情況都是以長沙為準的哈。招聘的崗位 應用開發 面試我的是以為比較年輕的學長,但看起來很嚴肅,我也努力的使自己鎮靜下來。簡單的介紹完自己之後,下面是我記得比較清楚的幾個問題了 1 給你兩個鍊錶,如何檢測他們是否重合?本身這個問題的是挺簡單的,之所以要花點時間介紹是因為要注意如何...

騰訊後台開發面試經驗

面試官簡單問了下工作地點的問題後,就直入主題了,沒問專案,全是程式設計基礎和演算法,感覺問題都是隨機的,從乙個問題根據你的回答深入到下乙個問題。1.static 使用與作用 2.inline 中斷 3.程序與儲存 4.棧的兩種指標,哎,才知道原來有個ebp是幀指標啊 5.殭屍程序的理解 6.awk,...