2018年滿滿的春招面經 | 掘金技術徵文

就決定是它了發表於2018-04-20

渣碩一枚,春招投了很多簡歷,通過面試也學到和很多東西,分享一下面經。

阿里電面

專案,主題模型

一個資料流,只能訪問一次,如何保證訪問每個資料的頻率相同

c++11 future和promise

epoll,libev優點

建構函式能不能重寫(沒聽清要問什麼)

物件導向的優點:更易維護,增加程式碼的重用

大文字如何排序

最優二叉樹(我說資料結構比較熟,他說那我考你一個最優二叉樹。沒答出來,以為是排序二叉樹。。如果問我哈夫曼樹我就會了。。)

棧和佇列

棧空間,堆空間,靜態區

棧區:有編譯器自動分配釋放,堆區:由程式設計師分配釋放

靜態區:全域性變數和未初始化的靜態變數

kmeans

mongodb瞭解嗎?

linux如何擴大分割槽

之後探討了一下今後發展方向,我說研究和工程比較偏工程,他好像不怎麼滿意的樣子,已掛。

騰訊電面(沒內推,被撈起來了):

map用的是紅黑樹,和AVL樹的區別

map插入和刪除需要注意什麼

mongodb 和 mysql 差別

IO多路複用方式的區別

如何檢視函式所佔用的記憶體

gdb如何debug

python資料處理庫,numpy和pandas

C++多型是怎麼實現的,哪些函式不能是虛擬函式(建構函式,靜態函式,inline函式)

25u-50結果是多少,u代表unsigned

malloc(0)返回什麼: 如果請求的長度為0,則標準C語言函式返回一個null指標或不能用於訪問物件的非null指標。

回覆等通知,不過我感覺掛了,微信裡面也查不到狀態。

頭條視訊面(3月31號):

一面:

專案

mongodb,mysql,redis

redis中hash的結構

簽到的表設計

flask,sqlalchemy

mongodb,mysql, redis的不同點

b+樹,儲存方式

https和http的不同

http返回碼

查詢最長迴文串(可以動態規劃)

https://blog.csdn.net/shineboyxxb/article/details/52079360

我寫了個暴力,給我過了

二面:

專案

mysql的引擎,區別(myisam, innodb)

mysql,mongodb各種索引是什麼,區別

多程式和多執行緒的不同

多程式和多執行緒的同步

靜態變數什麼時候初始化

mysql四種隔離狀態

MVCC

[0, n), n個數,範圍[0, n-1], 求是否有重複方法

求第k大的數的方法以及各自的複雜度

當有相同元素時,求第k大的元素的方法(類似快排,手撕)

三面:

專案

什麼時候會發生segmentfault

ip地址有什麼用,ip地址和mac地址

系統中斷是什麼,使用者態和核心態的區別

給你一個陣列,再給你幾對數,這幾對數只能夠同時出現或者不同時出現,求拿出k個數的可能性(true or false)(手撕,dfs標號+dp)

官網狀態還在面試中,估計還是備胎,基礎答的不夠好,但是還好程式碼都寫出來了。

酷家樂(現場面):

一面:

專案

實現一個買票系統:實現買票,退票,檢票。給一個小時,手撕,檔案流+map搞一下就行了,API之類的可以百度。

二面:

專案

資料流,如何獲取中位數,複雜度

一到一百萬的素數,怎麼快速求

有一堆數,再給你很多對數,每對數都在同一個組,求一共有多少組數

有很多蠟燭,每根蠟燭1個小時,求15分鐘怎麼計時

三面:

資料庫mongodb和mysql的不同

innodb的4種隔離方式

索引相關的東西

如何設計一個分散式配置系統,更新配置之後1秒鐘內能夠同步所有客戶端(這個答的不太好,因為分散式基礎比較薄弱)

四面:

家常

已拿offer,酷家樂面試體驗是最好的,而且公司環境不錯,很看好公司的發展。不過我太熟悉Java,還是想寫C++。所以沒去。

網易遊戲(視訊面):

一面:

自我介紹

介紹一個專案

資料庫瞭解嗎?

為什麼解構函式要是虛擬函式,為什麼c++沒有預設解構函式為虛擬函式

1.模板成員函式不可以是虛擬函式 https://blog.csdn.net/zzuchengming/article/details/51763563

2.C++裡面有很多小類,如果都有虛解構函式,則會對每個類都加一個虛表指標,浪費記憶體

1/x + 1/y = 1/n

求最小的n,使得對數超過1000

剛開始推了個公式,寫了個暴力,解釋給面試官聽,不過面試官沒聽懂,然後他告訴我解的方法,也是暴力,又重新寫了一遍,還是沒跑出來。面試結束之後才跑出來,跑了10多分鐘,答案是180180(不知道答案對不對)

二面:

介紹一個專案

C++11 的新特性

auto,shared_ptr, weak_ptr, unique_ptr

forward, move完美轉發

RAII機制,lock_guard

java,可達性分析

新生代,老年代

C++11的template和java的範型區別

https://www.zhihu.com/question/33304378

如何製作一個遊戲,當使用者到達一個視野之後,怎麼更新怪物

怪物有憤怒值,怎麼去設定這些事

離散化,染色

這次二面體驗很好,有些問題不會面試官會一步步引導你怎麼做,漲了很多姿勢。

目前不知道有沒有三面,不過騰訊已經收到offer了,所以應該不會面了。

騰訊現場面

騰訊一面:

自我介紹

手撕:

1.字串去空格

2.十六進位制轉十進位制

如何求前100大的數

堆和棧的區別

全域性的const,在函式裡面改const的值(沒理解面試官問什麼)

io多路複用,為什麼epoll比較好,什麼時候select比較好

兩種觸發方式

程式間通訊

共享單車如何分配

有一戶家庭,生了兩個娃,其中一個是女孩,另外一個是女孩的概率

棧實現佇列,佇列實現棧

STL set用什麼實現,為什麼用紅黑樹實現

hash用在什麼地方

各種排序空間複雜度和時間複雜度,穩定程度

快排什麼時候最不穩定

linux基本命令

檢視程式,執行緒,函式的cpu佔用

gdb

位元組序,網路序是什麼位元組序,為什麼會有不同的位元組序

騰訊二面:

介紹了一下組是做什麼的

自我介紹

在學校裡面學了什麼

怎麼學習的

專案介紹

手撕:求一個集合的所有子集,遞迴實現,非遞迴實現

本來想問一下圍棋怎麼數目,不過不懂圍棋的規則,所以面試官換了下面的一個題

手撕:去除包含4的數字,求一個數字是第幾個數,比如5是第四個數(數位dp)

騰訊hr面:

問了一下自己在學校中和自己家庭的一些情況。

問了一下自己今後的職業發展。

反正隨便聊天,面試官蠻親切的。

19號收到offer,原來我一直以為我是SNG的,收到offer居然是TEG的 233

微軟現場面:

一面:

稍微問了一下專案,介紹了一下組,是做雲端儲存的。

手撕:

有一個樓梯,一共有n層,可以走a步,也可以走b步,問最高能走到哪裡?(dp,O(n))

增加一個條件,有一次條件可以回退一半,比如本來在第8層,可以有一次機會直接到第4層。(兩次dp,O(n))

二面:

手撕:

一個陣列,裡面大多數都是成對的,只有兩個數沒有成對,求這兩個數(異或搞一下,把陣列分成兩組)

設計題:

get(), 每次取最小的數 Release(int num),釋放num 比如呼叫3次get(),依次得到1, 2, 3 如果呼叫一次Release(2),再執行get(),會返回2 這個就相當於linux裡面的檔案描述符,每次往小的取。 我直接用優先佇列(最小堆)和map(因為Release可能會對一個數字釋放兩次,所以要記錄有沒有釋放過)實現的。 寫test case

三面:

手撕:

求一個棧的pop序是否合法。

int to string,

string to int。

這兩個是庫函式,要注意各種情況,比如string to int的時候,數字越界要丟擲異常,要考慮負數,前置0等情況。

寫出test case.

題目不是很難,主要是看你寫程式碼的嚴謹性。

微軟的面試一般有兩輪,兩輪之後如果面試官覺得你還不錯則會有3面。微軟基礎不怎麼會問,基本上都是考演算法,要你站著用水筆在白板上寫程式碼(比用紙寫累好多),面試官也會非常重視test case,基本上每個問題程式碼寫好之後都要你自己設計test case。 面試結束之後回去等結果,感覺問題不是很大(火車票,住宿費全報銷,這點不錯)。

最後

最終選擇了騰訊,家在杭州,深圳有點遠。不過對於快要畢業的人來說多去遠方看看也蠻好。祝大家都能夠拿到想要的offer~

掘金技術徵文連結? juejin.im/post/5aaf2a…

相關文章