天天看點

【面經】位元組跳動後端開發視訊架構方向一面二面

位元組一面

正常自我介紹:姓名、學校專業、學校表現(也就是獎項、榮譽)、項目介紹。

聽了項目以後開始問我項目相關的問題

之後就開始問正常問題

1、知道tcp/ip嗎(隻知道是一個協定簇,内部包含很多協定,向tcp、udp協定。)

2、ip協定的封包(不知道,對ip協定了解不多)

3、七層協定和五層協定(說了七層,然後說了四層(聽叉了))

4、資料鍊路層的協定(直接說不太了解)

5、套接字流程

6、多态

7、記憶體管理

8、c語言和c++struct的差別,沒答好,就問了struct和class的差別

9、模闆的編譯

9、http協定

10、get和post的差別

11、倒序工字周遊二叉樹(大概說了想法,但是有問題,面試官一直提示我,沒寫出來)

12、又想讓我寫快排(好久以前學的,沒複習忘了)

13、然後又問我算法中什麼最了解,我說貪心,結果給了我一道動态規劃的題目最長公共子序列。(答題思路記得,但具體忘了,我履歷上隻寫了了解,我是真的想不起來了)

14、現在想想面試官應該是向給我過,然後無可奈何的給了我一到簡單的題目,給定一個數組,求裡面連續資料的最大值。(在面試官的提示中寫出了代碼)

最後肯定就是你有沒有什麼想問我的了,肯定是問我還有沒有什麼需要改進的地方。

前面的自我介紹和基本問題用了大概四十幾分鐘,加上算法題總共大概一個小時十六分鐘。面試官說因為我前面的問題表現比較好,是以算法題難度也比較高,,,沒想到我不會。。。

以為會挂,但是沒想到二十分鐘左右就收到了二面的電話。

二面

正常自我介紹:姓名、學校專業、學校表現(也就是獎項、榮譽)、項目介紹。

聽了項目以後開始問我項目相關的問題

之後就是正常問題

1、有沒有用過awk指令

2、了解ping指令嗎,傳回值是什麼?(傳回值不清楚)

3、問我了解堆棧嗎?(回答了一下用malloc和new在堆上申請記憶體,局部變量儲存在棧上)

4、然後問我棧上為什麼不需要進行手動資源釋放(我講了一下函數調用時會開棧、函數結束時,作用域結束,會退棧,是以不需要進行釋放)

6、問我使用map嗎(我說沒有,不太了解)

7、問我常見容器有哪些?(大概說了幾個,是在記不清楚了,用的少)

8、問vector應該是有限定長度的,但是卻沒有顯示出來,它内部是怎麼實作的,就是擴容機制。(講了一下先用malloc開辟一個二倍長度大小的數組,然後再将原來數組上的數複制上去,再把原來的數組釋放掉。

9、問我了解extern嗎,知道底層實作嗎(我隻說了功能,對底層不清楚)

10、問我一個udp server和一個tcp server能不能同時共用一個端口(我就說了我覺得不能,同一個時間同一個端口隻能被一個服務使用,不知道對不對,面試官也沒再說)

11、有一個不均勻的硬币,正面的機率是0.7,反面的機率是0.3,問通過抛硬币來決定兩個人誰能喝水,怎麼才能公平。(沒想出來,簡直就是亂說。。然後在面試官的提醒下一步一步做出了答案。扔兩次,出現一正一反和一反一正的機率是相同的)

12、給定一個整型數組,求裡面最小的間隔數。如{8,4,2,5,6,9,12},最小間隔數為3;因為最小數為2,沒有3。(一開始想的是給定一個足夠長的數組初始化為0,周遊一遍原始數組把建立數組對應下标加1,然後再周遊一遍建立數組,第一個為0數對應的下标就是最小間隔數。但是沒說出來數組長度,面試官說可以先周遊一遍求出最大值和最小值的差,就是數組的長度。之後自己就不會做了,之後面試官說可以建立一個和原數組一樣長的數組,然後周遊一遍原數組,找到最小值,在周遊一遍,講所有值都減去最小值後在新數組對應下标位置加1,超出數組長度的值不需要處理,一定在數組長度内。        說實話這個思路問了面試官好久才明白。)

最後肯定就是你有沒有什麼想問我的了,肯定是問我還有沒有什麼需要改進的地方。