【求職】拼多多 C++方向面經

第一篇
一面 2019/4/15 來自於牛客網
1、自我介紹,然後問項目
2、項目比較偏,講了挺久的,不過面試官還是聽完了,並且問了幾個問題
3、同步異步,阻塞非阻塞 IO 區別
4、epoll/select
5、進程間通信方式
6、SVM
7、筆試題優化,寫完給他看
二面 2019/4/20 來自於牛客網
1、自我介紹+項目
2、項目細節,問了挺久
3、進程間通信方式
4、用過哪些共享內存
5、講 mmap
6、socket
7、TCP 和 UDP,TCP 相關
8、紅黑樹
9、寫題:旋轉數組中的最小值
第二篇
一面 2019/9/7 來自於牛客網
1、聊項目
2、重解筆試題目
3、Mqtt,Http,WebSocket 協議相關內容
4、C++多態實現
5、預編譯保護
6、動態鏈接和靜態鏈接
7、進程 fork 過程
8、C++構造函數和析構函數相關
9、深拷貝和淺拷貝
10、虛函數和內聯
11、C++內存分配
12、O(logn),O(n),O(nlongn),O(n2),O(nlogn),O(n^3)算法各舉一個例子
13、map 和 hashMap 底層實現
14、hash 函數、hash 衝突相關
15、穩定排序和不穩定排序,各種排序算法複雜度
16、Graphql、Restful
17、題目 1、給一個序列,如{1,4,6,3,8,7},然後打印相應的柱狀圖
18、題目 2、給定一個函數 g(x)可以以概率 p 產生 1,概率 1-p 產生 0,讓你利用 g(x)寫
一個 f(x),可以以概率 q 產生 1,概率 1-q 產生 0
二面 2019/9/7 來自於牛客網
1、聊的知識面非常寬泛,天南海北的聊
2、項目相關
3、Tcp,Udp 區別,Tcp 擁塞控制、三次握手、HTTP 協議、ARP 協議、如何檢測發生碰
撞、ICMP 協議、DNS 協議
4、數據從應用層到物理層,再到應用層的過程
5、內存對齊規則
6、多線程和多進程區別
7、多線程同步方式
8、進程間通信方式
9、用過哪些消息隊列
10、共享內存的實現
11、RPC
12、系統中斷、中斷向量表
13、用戶空間和內核空間切換
14、IO 模型
15、select,poll,epoll
16、epoll 實現
17、靜態鏈接和動態鏈接
18、虛擬內存,程序裝載過程
19、使用 TCP 通信的過程
20、紅黑樹、B 樹、B+樹
21、平衡轉化的過程
22、hash 和紅黑樹對比
23、適配器模式
24、迭代器的實現
25、內核相關
26、golang 和 c++的區別
27、copy on write
28、fork
29、守護進程
30、軟連接和硬連接
31、堆排序過程
第三篇
一面 2019/8/19 來自於牛客網
1、加班挑戰?
2、研究方向偏算法、工程方面欠缺,那有什麼優勢呢?
3、能力在實驗室中處於什麼水平?
4、工作地點方面有什麼考慮?
5、是獨生子女嗎?家人希望你在哪裏發展?
6、單身嗎?
二面 2019/8/19 來自於牛客網
1、項目
2、微信裏的語音和視頻,基於什麼協議?從上到下講述
3、應用層協議關注什麼?
4、mysql 索引
5、b+樹爲什麼可以減少磁盤 io 次數?
6、常用的 STL 涉及的數據結構? 7、map 爲什麼用紅黑樹?紅黑樹使用場景?
8、研一都學了什麼課?
9、最大不重複子串
第四篇
一面 2019/8/19 來自於牛客網
1、線程和進程的區別,爲什麼要有內核態?
2、有什麼方法可以切換到內核態?
3、用戶態切換到內核態的具體過程
4、tcp 三握四揮,爲什麼三次?兩次爲什麼不行?爲什麼不需要四次?爲什麼四次揮手?
5、time_wait 是幹嘛的?
6、I/O 複用,select,poll,epoll 的區別和應用場景
7、C++多態的實現原理?
8、帶有虛函數的類在內存中怎麼佈局?
9、虛函數表是什麼數據結構?
10、算法題
1)寫一個函數,生成 0-1 的隨機數
2)字符串匹配
二面 2019/8/19 來自於牛客網
1、算法題
1)寫一個二叉樹的中序遍歷的迭代器
2)將中序遍歷改成非迭代
3)大數相減
2、http 中的 get 和 post 有什麼區別?
3、post 是怎麼樣放在 body 中的?
4、http1 和 2 的區別,http 和 https 的區別,神經網絡的 bp 算法怎麼推導?
5、C++多繼承,菱形繼承
第五篇
一面 2019/9/14 來自於牛客網
1、如何獲知拼多多的?
2、對拼多多的認識?
3、問問簡歷上的一些事情、項目
4、工作地點的考慮
5、求職方向的考慮
6、是否已經獲得過其他廠的 Offer
7、經典問題:目前爲止最有挑戰的經歷
8、薪資待遇
二面 2019/9/16 來自於牛客網
1、自我介紹
2、回顧一下筆試題,問了第一題的思路以及一些代碼上的細節。這裏有一個很奇特的
點,在線提交的時候顯示筆試成績是 75-100-0-0,而面試官手裏的資料顯示是 75-85-
100-0
3、由於是非科班,面試官就輕虐一下,首先問進程和線程的區別
4、隨後問知道協程嗎?
5、構造函數能否是虛函數?
6、手寫單例模式
7、算法題:消消樂,給定一個數字序列,將連續的數字全部消除,比如 1,2,3,3, 3,2,3,返回 1,2,2,3 8、消消樂升級,只要有相同連續數字,全部消除,如 1,2,3,3,3,2,3,返回 1,3
第六篇
一面 2019/9/24 來自於牛客網
1、自我介紹
2、算法:二叉樹寬度最大的第三個數
3、RPC 底層實現
4、Redis 雪崩解決辦法
5、高併發的模式,多線程 netty 的模式
6、業務減庫存的問題,如何防止多減
二面 2019/9/24 來自於牛客網
1、自我介紹
2、算法:矩陣裏尋找一個點到另一個點的最短路徑,中間有障礙物
3、算法:求 1 到 N,每個數有多少個 1
4、算法:查找二叉樹插入和刪除的實現
5、聊了聊項目
第七篇
一面 201/8/29 來自於網絡
1、兩欄佈局,左邊固定,要求先加載內容區域,說出多種方法
2、正則對象 test 方法和 exec 方法的不同,分別返回什麼
3、事件綁定的多種方式,事件監聽 addEventListener 的第三個參數是什麼,取值各有什
麼意思
4、事件代理阻止事件冒泡(stopPropagation cancelBubble)阻止事件默認方式
5、js 基本數據類型有哪些,寫一個函數判斷變量的類型
6、詳細說說 box-sizing 屬性取值的區別
7、有一段文字,裏面有電話號碼,電話號碼是連續數字,需要把電話號碼都替換成*,說
出多種做法
8、Header 頭 Set-cookie: http-only 是幹什麼用的?
二面 2017/8/29 來自於網絡
1、自我介紹
2、講講你做過的項目
3、項目中提到了 React,問:React 組件的生命週期?父子組件之間如何通信?子組件之
間如何通信?
4、前端性能優化?
5、http 緩存原理?
6、JavaScript 的垃圾回收機制?
7、CSS BFC 原理?
8、box-sizing 屬性
9、穩定的排序和不穩定的排序?
10、還有什麼想問我的?
第八篇
一面 2019/10/14 來自於網路
1、自我介紹
2、js 繼承原理
3、閉包,經典閉包問題 for 循環 i,實現指定輸出
4、狀態碼 499 client has closed connection
5、http 有哪幾種請求的方法,options 作用
6、CROS 方法實現跨域
7、項目介紹,微信免登陸怎麼實現
8、angular 和 vue 區別
9、手寫多路歸併排序
10、前端性能優化?具體怎麼實現的,用過哪些
11、sessionStorage 和 localStorage 的不同
二面 2019/10/14 來自於網絡
1、自我介紹
2、項目介紹,vue 優點
3、盒子模型,怎樣在標準盒子模型中實現 IE 盒子模型
4、知道哪些排序算法,手寫快排,時間複雜度
5、怎樣知道一個元素在當前屏幕 getBoundingClientRect
6、實現空心圓,裏面白色,外面紅色(僞元素、border、radial-gradient)
7、有三個函數,內部實現都是異步的,怎麼讓這三個函數變成一個同步的,以節省時間
–promise、all
第九篇
一面 2019/10/20 來自於網路
1、一個 C++源文件從文本到可執行文件經歷的過程
2、#include 的順序以及尖叫括號和雙引號的區別
3、進程和線程,爲什麼要有線程
4、C++11 有哪些新特性
5、爲什麼可變參數模板至關重要,右值引用,完美轉發,lambda
6、malloc 的原理,brk 系統調用幹什麼的,mmap 呢 7、C++的內存管理方式,STL 的 allocaotr,最新版本默認使用的分配器
8、hash 表的實現,包括 STL 中的哈希桶長度常數
9、hash 表如何 rehash,怎麼處理其中保存的資源
10、Redis 的定時機制怎麼實現的,有哪些弊端,你將如何改進這個弊端
11、Redis 是單線程的,爲什麼這麼高效。我用了對比的方式說,舉例 Apache 和
Nginx,一個多線程,一個 IO 多路複用
12、Redis 的數據類型有哪些,底層怎麼實現,跳躍表,哈希表,整數集合等等
13、Redis 的 rehash 怎麼做的,爲什麼要漸進 rehash,漸進 rehash 怎麼實現的
14、Redis 和 mem***d 的區別,Redis 爲什麼可以組集羣
15、TCP 的模型,狀態轉移
16、用過哪些設計模式,單例模式,觀察者模式的多線程安全問題
17、用過多線程嗎,以前的多線程代碼還能怎麼優化,線程池的實現
18、epoll 怎麼實現的,reactor 模型組成
19、平時怎麼提升自己,看書,看別人在學什麼,那最近看了什麼書?你怎麼判斷一個人
厲害不厲害
20、給定一個數字數組,返回哈夫曼樹的頭指針
21、隨便挑一個自己收穫最多比賽或者項目介紹,收穫了什麼
22、單核機器上寫多線程程序,是否需要考慮加鎖,爲什麼?
23、線程需要保存哪些上下文,SP、PC、EAX 這些寄存器是幹嘛用的
24、HTTP 和 HTTPS 的區別,HTTPS 有什麼特點,帶來的好處和壞處,怎麼實現的
25、線程間的同步方式,最好說出具體的系統調用
26、哈希表的桶個數爲什麼是質數,合數有何不妥?
第十篇
一面 2019/10/20 來自於牛客網
1、自我介紹
2、Cpp
3、智能指針
4、虛函數的實現?
5、虛函數表存的是什麼?
5、給了段多繼承的代碼,問我代碼中會調用哪個類的虛函數
6、內存分爲哪些區?
7、new 的內存在哪,局部變量在哪?
8、函數調用時發生了什麼?
9、棧怎麼變化的?
10、虛析構函數的作用?
11、動態綁定和靜態綁定
12、宏定義與模板的比較?宏定義會有什麼潛在問題?宏有類型檢查嗎?
13、瀏覽器輸入地址後,發生了什麼?
14、算法題
給定一個數組,找出最長子序列的長度,子序列滿足:遞增-遞減-遞增波動變化

求職必備刷題官網:https://github.com/bennyrhys/interview
【更多互聯網公司筆試面試真題請關注“讓我遇見相似的靈魂”公衆號】

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