一、鬥魚(9.8,現場筆試+技術面+hr面)
現場筆試:(題目比較基礎)
1、十幾道C++基礎簡答題或改錯題
2、一道字元串分割的算法題
3、一道string類的實作
4、一道快排的實作
鬥魚技術面:(2h+,其實就是将筆試題從上往下問,并且做很多拓展和延伸,記錄一些我有印象的)
1、c++多态的種類、C語言的多态怎麼實作
2、struct與類的差別
3、union和struct的差別,union如何知道目前使用的是哪一個元素,如何設計
4、vector和map删除時,疊代器失效如何解決
5、線程安全的單例模式(注意volatile和double-check)
6、排序時衡量性能的标準
7、複雜的位元組對齊計算(需要分32位和64位讨論,但兩種系統最終結果相同,pragma pack 1的應用場景(節省空間,公司統一标準)?
8、使用者有兩個程序,分别運作while(1){},系統如何切換(時鐘中斷,進一步延伸到内中斷,外中斷)
9、項目中有用到模拟退火算法,讓我講了下思路與實作
10、虛函數的實作
hr面:(0.5h)
1、個人情況
2、家庭情況
3、手上offer情況
4、發展規劃
二、 滴滴(9.12,3技術+1hr面)
技術一面(50min+, 隻記錄一些有印象的):
1、項目
2、B+樹、B-樹的差別
3、資料庫隔離級别,幻讀和不可重複讀的差別
4、有hell, well, hello, world等字元串組,現在問能否拼接成helloworld,代碼實作
5、快排
6、線程安全的單例模式
技術二面(1h15min, 純怼算法和智力題,好難):
1、25匹馬賽跑,有一個賽場,隻有五個賽道,沒有計時器,隻能通過目測來記錄快慢,求出求3快的馬要多少場比賽?
2、kmp算法next數組的求解思路
3、數組中有三個數字出現超過3/4,求着三個數字
4、1到n+2個數組中缺了兩個數,如何用O(n)時間,O(1)空間找到這兩個數字
5、一條線段長為1,随機選兩個點,将改線段分為三段,三段能成三角形的機率是多少?
6、有一個教授,他三個學生,腦袋背後分别各寫了一個數字,其中一個數字是另外兩個數字的和,經過幾輪後,有一個學生猜出了自己的數字請問是什麼原因?
7、B+樹做索引時,B+樹通常高度為多少層?要參考哪些條件?
技術三面:(40min)
1、問我喜歡什麼運動,說籃球,聊了籃球和工作,大概近10分鐘,後來知道面試官以前是校隊,校賽拿mvp的大神,怪不得問我拿過什麼籃球的榮譽
2、一個3L的杯子,一個5L的杯子,如何倒出4L的水,要求兩種方法
3、情景題:周一上司布置任務,周五完成,周三發現完成不了,你會怎麼處理
4、對BAT三家的看法,現在看好誰
5、介意學機器學習嗎?(怎麼可能介意,求之不得)
6、問我有什麼問題要問(我說這不是技術面嗎?怎麼沒怎麼問技術,結果面試官加了第七題)
7、二維數組行優先讀取和列優先讀取哪個快,從作業系統層面解釋(從減少缺頁中斷的角度出發即可)
hr面(都大同小異)
三、百度(9.17/9.19, 三輪技術面,沒有hr面)
技術一面(1.5h,面試官平時是負責終面的boss,聊的不完全是技術,有很多内容記不住了)
1、聊了項目。面試官很感興趣,聊了半個小時
2、作業系統,null指針為什麼不可通路(涉及到段頁式記憶體管理中,記憶體配置設定問題)
3、socket syn攻擊原理,逾時重傳的次數及時間間隔
技術二面(50min)
2、select/poll/epoll
3、線程池
4、ipc,以及共享記憶體使用的時候需要注意什麼
5、手寫代碼,題目記不清了
技術三面(電話面35min左右)
1、履歷細細過一遍
2、cat file | grep x 建立幾個程序 他們是什麼關系
3、父子程序間,子程序退出後會發生什麼
4、如果父程序不需要捕獲子程序退出消息怎麼辦
5、pcb包括什麼
6、有一個檔案,每一行都有一個IP範圍,以及對應城市。你需要檢測,同一個城市的IP是否沖突。不同的城市IP相同不算沖突。
7、未來的打算,自我評價,職業生涯規劃
四、美團(9.19/9.21)
初試一面
1、自我介紹
2、項目(問的很深)
3、資料庫實作原理 B+樹 B-樹差別
4、資料庫索引種類
5、接口響應時間由20 ms偶發提高到1000ms可能是什麼原因
6、左聯結,右聯結,資料庫隔離級别
7、數組中找出和為target的兩個數的位置
8、Linux指令
9、對Java的了解
還有一些忘了
初試二面:
2、項目
3、模拟退火算法,爬山算法,應用場景。。
4、tcp udp,udp的各種應用場景,udp如何實作可靠傳輸
5、syn攻擊
6、黑客怎麼越過防火牆,對防火牆内部計算機進行攻擊
7、設計餐館的資料庫,需要幾張表
8、stl有哪些優缺點 為什麼有時候很慢
9、設計模式,觀察者模式
10、堆排的實作
11、聊了下個人情況
複試一面:
2、socket11種狀态,詳細介紹
3、阻塞與非阻塞
4、同步與異步
5、connect可以異步嗎?
6、如何看待上層應用程式設計與低層架構程式設計?
7、看什麼書,怎麼學習的
還有一些忘記了
複試二面(hr面)
大同小異,不過美團hr給我印象特别好,特别主動介紹了公司的各種情況,好評
五、小米(9.20,隻有兩輪技術面)
技術一面(35min, 體驗不好。一個标間裡面試,hr在旁邊整理資料,下一個面試者竟然就在房間看我們面試。。)
2、介紹作業系統的段頁式記憶體管理
3、socket三次握手,以及半連接配接的含義,可能出現的問題,以及處理方案
4、寫代碼,正規表達式模式比對
技術二面(35min):
2、模拟退火算法介紹
3、手寫代碼:8*8的網格中,一個皇後選擇一個位置後,她橫豎斜三條直線上都不允許放其他皇後,問放8個皇後有幾種方式
4、設計題,有一個車庫,裡面可以停大車和小車,可以自己拓展需要的資訊(我拓展了計費等服務)
六、騰訊(9.21/9.23/9.24,兩輪技術面+hr面):
技術一面(45min左右):
3、程序與線程的差別(這裡我說的很細緻)
4、管道一般用途,如何用管道實作非親緣程序間通信(有名管道)
5、實作memcpy(注意區分pSrc和pDes重疊的情況)
6、環形連結清單檢測,以及入口求解,手推公式
7、智力題:A房間三個開關,控制着B房間三個燈,隻允許進一次A,進一次B,如何确定開關與電燈的對應情況
8、問其他offer情況
技術二面(45min左右):
1、最滿意的項目,詳細介紹
2、手寫代碼:有一個數字N,由1,2,3,4四種數字組成,請問怎麼調整其順序,可以使其整除7
3、手寫代碼:map中,删除key值為素數的元素,
4、socket中,緩沖區隻有2k,要接受4k的資料,怎麼處理,代碼實作
5、linux裡ipc有哪些
hr面(18min)
2、如果有人質疑你非計算機專業的,你會怎麼看
3、學習了哪些課程,怎麼自學
4、家庭情況,職業規劃
5、對我騎行2000km的經曆感興趣,聊了下
6、讓我提問
七、華為(華為暑期實習生,隻參加了實習答辯)
寫在最後
所有公司投遞崗位的都是C++軟體研發工程師/背景研發工程師。截止2017.9.26,确認的有華為、鬥魚、美團、百度。等通知的有騰訊,小米,滴滴。由于已經有一些offer确認,京東、招銀網絡、網易互娛面試沒有去參加了。
本人非計算機專業出身,讀研階段才開始接觸程式設計,不過讀研期間付出了比别人更多的努力。是以,付出總會有回報的,希望大家也繼續努力,也預祝找工作的同學也都能拿到滿意offer,加油!