作者:leottt
鏈接:https://www.nowcoder.com/discuss/46728?type=post&order=time&pos=&page=1
來源:牛客網
一面:
const 三種用法
const int
const int* / int const *
int * const
https://blog.csdn.net/fanx021/article/details/82937940
sizeof() strlen() str.length() size()
https://blog.csdn.net/z_qifa/article/details/77744482
sizeof 爲對象的字節大小,strlen 要求參數爲字符指針
length size 都是用來計算string對象長度,作用相同
sizeof是運算符,strlen是函數。
_beginthreadex()比較於 CreateThread()有更高的線程安全性,不會造成多個線程共用同一個全局變量的情況
const mutable static
https://www.cnblogs.com/yangguang-it/p/6547314.html
strcpy strncpy strlcpy的用法 以及源碼實現。
class, struct, union
https://blog.csdn.net/fadbgfnbxb/article/details/88788037
https://www.jianshu.com/p/ae75cd16000d
https://blog.51cto.com/cxdbk/1650006
https://blog.csdn.net/alidada_blog/article/details/83419757
TCP與UDP的區別, 場景, TCP如何實現可靠傳
malloc 和new的區別 以及malloc的用法
https://www.cnblogs.com/ywliao/articles/8116622.html
https://blog.csdn.net/zlf19910726/article/details/79189689
1 申請內存所在位置
2 返回類型安全
3 內存分配失敗是的返回值
4 構造函數和析構函數的調用
5 定義數組的大小(是否需要指定大小)
6 創建數組和刪除數組空間的操作
7 new和malloc 是否可以相互調用
8 是否可以被重載
9 是否可以重新分配內存
10 客戶處理內存分配不足
模板使用時候typename和class的區別
https://www.cnblogs.com/cthon/p/9201649.html
vector的push_back爲什麼要擴容2倍或者1.5倍
https://blog.csdn.net/bryant_xw/article/details/89524910
map\set\unorder_map\unorder_set的區別
https://blog.csdn.net/chen134225/article/details/83106569
https://blog.csdn.net/zjajgyy/article/details/65935473
說一下C++虛函數的實現
https://blog.csdn.net/tajon1226/article/details/81407190
https://blog.csdn.net/cherisegege/article/details/80469868
可以不修改父類 就讓父類擁有子類的函數功能
基類的f()未被virtual 覆蓋
基類的f()被virtual 覆蓋
https://www.jianshu.com/p/3bc24c8cc329
C++智能指針瞭解麼
https://www.cnblogs.com/KillerAery/p/9096558.html
如果要你設計,你會怎麼設計智能指針
https://www.jianshu.com/p/02bb7e6aeb03
Java的是怎樣解決循環引用的,那C++怎麼解決呢
https://www.jianshu.com/p/d8578725f1bb
計算機圖形學瞭解多少
說一下光柵化是什麼以及這個階段有什麼流程
AVL樹是什麼?怎麼判斷兩顆AVL樹裏含的數據是一樣的(這裏樹的結構可能不一樣的)?
https://blog.csdn.net/canot/article/details/78946450
中序遍歷的非遞歸實現。
設計一個遊戲排行榜的實現:1、獲取前K名玩家的信息2、輸入一個玩家id,能獲取玩家當前的排名。
二面:
自我介紹
介紹一下自己最深刻的項目經歷(說了一下自己在tx實習那邊做的東西)
喜歡玩遊戲麼(從小學到大學玩的遊戲都說了一遍= =)
設計一個洗牌算法,讓牌儘可能的亂
給10w行數據,每行數據都是由<ipstart,ipend,location>的字段構成,<ipstart,ipend>是一個ip範圍字段(ipstart<=ipend),這個範圍對應一個唯一的地址location,每個ip範圍字段不存在交集。問:輸入一個ip地址,怎麼得出它對應的地址locaiton
如果ip範圍字段存在交集要怎麼處理?
作者:相信夢想
鏈接:https://www.nowcoder.com/discuss/95256?type=post&order=time&pos=&page=1
來源:牛客網
一面:
virtual關鍵字
虛函數,這個我答的比較多,順便說了一句構造函數不能爲虛,扯多態的實現
然後就問爲什麼(虛函數表,實例對象的虛指針實現)
類裏面還有什麼函數不能爲虛(半天沒想起來,面試官提示static才轉過彎)
https://blog.csdn.net/nie19940803/article/details/77427219
stl容器,實現方式,各種操作的複雜度
大數據處理爲什麼用vector不用list
一個vector當做無序容器儲存上萬數據,刪除中間元素,怎麼實現O(1)複雜度,開始沒聽到無序,想半天,後面提示無序後,直接swap pop_back
四種類型轉換
編程思路題,下樓梯,一個小人從屏幕頂下樓梯(類似於真男人下一百層,只不過樓梯不變),只能在樓梯上左右移動,落在空中的時候不能動,掉落距離超過一定長度就摔死,空中掉落和左右移動都是1 m/s,問下到屏幕底所需的最短時間(用dfs,bfs實現),讓寫動態規劃,寫出狀態方程就給過了
平時用的語言
tcp與udp的區別和各自的優勢
二面:
類的成員函數中,const在三種位置的作用
定位new
介紹研究生的項目
遇到過的最困難的事
爲什麼想來網易
手寫二叉樹的前序遍歷遞歸與非遞歸實現,問添加一個額外的操作,怎麼封裝(定義抽象基類,用子類實現)
給定一個地圖,分割爲多塊,怎麼把建築物的高度壓縮到0-1.0的高度
射擊遊戲,怎麼判斷開槍後命中的目標(子彈可穿透),目標如果有體積怎麼檢測
最後二面面試官人真的很好,就是說話聲音有點模糊,兩個題都複述了一次才聽清楚
作者:HoldJohnh
鏈接:https://www.nowcoder.com/discuss/97989?type=post&order=time&pos=&page=1
來源:牛客網
筆試
初級遊戲研發的筆試就三題 (找不到原題了)
-
第一題是工資多少求交稅多少 我一堆 if else 完成了 花了 20 分鐘左右
-
第二題是成員列表 類似QQ羣的人員排序 在線 > 離線; 羣主 > 管理員 > 普通人; 我用結構體保存數據 然後 sort 花了 30 分鐘左右
-
第三題是 PVP 的時間,我是把每段時間都轉換爲距離週一 0 點的秒數,一開始一直 0% 後來考慮到週日到週一的情況 改完直接 AC 花了 60 分鐘左右
這應該是我狀態最好的一次筆試了,我還記得我寫完從位置上跳起來的樣子,然後不知所措的考慮要不要提交。。
一面
一面前有一道筆試題,不透露就不說了
一面的面試官很 nice 一見面就說我筆試成績很不錯 感覺這讓我的第一印象很好。
-
內聯函數
-
重寫和重載 覆蓋
-
用 c 實現重載 (我很絕望啊。。。)
-
創建派生類對象時 構造函數調用順序
-
虛函數的實現
-
用 C 模擬虛函數 (絕望。。)
-
虛函數可以內聯嗎
-
STL 容器和算法 (我剛看完 stl 源碼 狀態很好 一直是我在說)
-
vector push_back時間複雜度
-
socket 代碼怎麼寫
-
擁塞控制
-
虛擬內存 物理內存
-
操作系統啥的 (我不會呀。。)
二面
二面之前有段小插曲,我以爲一面結束就可以跑路了,結果跑一半看的 0571 的未接電話,打回去是網易的 HR 讓我回去二面,感謝小黃車,讓我感受到速度與激情。
-
const 的用法和作用
-
dynamic_cast static_cast
-
java 的反射機制
-
項目
-
遇到的困難
-
因爲我之前在邊鋒遊戲實習過一段時間,瞭解了一下實習做了什麼,順便問了 lua 和 cocos2d 的東西
然後是倆題遊戲設計 和這個老哥的二面幾乎一模一樣
-
喫雞地圖高度轉換成 [0,1.0]的數組 然後提需求修改 (手寫代碼)
-
平面喫雞判斷擊中誰 我使用數學思路來回答的 用向量啥的。
-
手寫二叉樹遍歷 提要求需求如何修改 我想法是傳遞函數指針
-
設計模式會哪些呀
-
聊人生 聊理想
感覺
網易倆面試官給我感覺都是人超級好的那種,面的過程中還比較順利很說說笑笑的。
豬場的午餐是不錯 居然有蝦! 而且小姐姐也很漂亮 但這不是重點
早上接到 HR 小姐姐的電話 真的好高興 也很興奮 心裏終於有底了
最後希望各位老哥能穩住
我非 211 985 非科班(電子) 本科生都有機會進網易
你們秋招一定也能拿到想要的 offer 的!
作者:宇宙第二菜雞
鏈接:https://www.nowcoder.com/discuss/96710?type=post&order=time&pos=&page=1
來源:牛客網
現場筆試:(0.5h)題不難但處理條件很煩,沒寫完
一面:(1.5h)
面試官看了我的筆試答案沒說啥,直接開始。
多態,虛表虛指針,虛基類以及內存分佈
函數重載
構造函數和複製構造函數能否爲虛,爲什麼
一個對象的內存分佈,多個虛函數佔多大空間
shared_ptr介紹原理,weak_ptr如何解決引用傳遞
右值引用
編譯器如何處理模版
編譯中的導出符號表和未決符號表
反彙編時符號表的狀態
比較c++和java
介紹一下stl的list,查找list複雜度
unorder_map插入複雜度
stl迭代器重載
遍歷vector的幾種寫法
數據庫常用數據結構,b+樹的好處
圖的bfs和dfs
快排,複雜度,最壞情況以及設計算法解決
tcp和udp
如何用udp封裝實現tcp
進程和線程
如何保證線程安全
互斥鎖原理和使用
多級cache
虛擬內存和LRU
光柵化pipeline
光線追蹤
法線貼圖
ssao
寫過什麼shader
字符串匹配kmp
最長公共子串dp的狀態轉移方程
點在線段上投影,向量解法
二面:(50m)
自我介紹
項目介紹和問答佔大部分時間,不細說了
最新gpu架構怎樣實現實時光線追蹤,不知道就猜一猜
擅長的語言排下序,比較c++和java...
給定兩點初始狀態和運動方程,求兩點相遇的時間和最早相遇的時間(沒做出來)
文件io類似括號匹配的問題,瘋狂提示下才想到用棧解決,也沒完全做出來
職業規劃
有什麼問題
作者:失去夢想的菜雞
鏈接:https://www.nowcoder.com/discuss/107050?type=post&order=time&pos=&page=1
來源:牛客網
今天早晨收到了網易互娛的 Offer,發個面經回饋一下牛客。
先說一下整個經歷,我是8月5號投的提前批,7號參加的筆試,20號收到電話說筆試通過,通知21號下午電話一面。一面完過了一個星期收到電話通知30號現場面,面試官說十天內(我不確定他說的是不是工作日)出結果,然後今天早上收的短信。
一面:
一面約的下午 5 點,時間一到面試官就打了電話過來,全程 44 min
-
上來先讓我自我介紹,問我學校都學了什麼課程,問我的語言。我學校教的是 Java,自己學了 Python,所以面試都問的 Python。
-
Python 都用了哪些模塊?用的是 Python 2 還是 Python 3?2 和 3 有什麼區別?
-
range() 函數返回什麼?
-
import 是如何加載的?如果想 import 一個下載的包要怎麼做
-
閉包是什麼?閉包裏的函數怎麼傳參?怎麼把函數外的變量傳到函數內
-
線程是怎麼切換的?進程是怎麼切換的?
-
一個線程掛了,其他的線程會怎麼樣?
-
問我平時用什麼數據結構多一些,說一下數組和隊列的區別,如何用數組表示一個隊列?
-
TOP-K 問題
-
TCP 和UDP 有什麼區別?
-
UDP 包如何實現可靠?
-
數據是怎麼在 TCP 收發端傳輸的?
-
問了一些網絡編程相關的問題,記不清了
-
講一下了解的排序算法
-
給一個英文句子,怎麼把單詞逆序
-
如何判斷交叉鏈表?怎麼找到交叉點?
-
圖形學是否瞭解?簡單講一下座標變換
-
有什麼問題?(問了一下網易的引擎)
二面:
二面到了廣州現場先帶到一個小房間,給了一張紙手寫代碼,題目似乎是 STL 裏面的一個函數的實現,如果經常用的話應該都能寫出來,反正我沒用過,亂寫了一下 hhh,寫完之後就被帶到了面試官的房間,二面的面試官是一個看起來就很厲害的大佬,面試全程笑眯眯的,面試體驗非常好(除了題不會),全程 45 min 左右
-
先自我介紹,問學校都學了什麼,做過什麼項目?
-
我簡歷上寫了兩個遊戲項目,讓我簡單介紹一下
-
實習都做了什麼?(我在一家創業公司實習,做遊戲測試策劃和部分開發,就簡單講了一下實習的經歷,講了測試時遇到的一個bug,還有開發的遊戲)
-
有沒有學過圖形學?都學了哪些?
-
問了一個空間座標系轉換的問題,大概是給了一個三角形,怎麼把這個三角形轉移到相機的那個空間,名詞我記不太住了,就是比較基本的圖形學知識。
-
我說我圖形學學了一點關於碰撞檢測的東西,問我如何判斷一道光線是否與物體碰撞,怎麼找到碰撞點?什麼是八叉樹?
-
是否瞭解 C/C++?(不瞭解,但是會寫一點代碼。。)
-
是否瞭解 STL?
-
print函數從執行到打印到屏幕上都經歷了什麼?
-
堆和棧有什麼區別?
-
多線程瞭解嗎?多線程可能會因爲什麼問題?舉個例子說明。爲什麼加了鎖就可以避免?加鎖操作不會出問題嗎?
-
寫一個 Python 的列表生成式,生成 0 到 100 的所有奇數
-
給一個數組,如何把所有的 0 都移到數組最後?手寫代碼
-
升學和就業是怎麼考慮的?
-
有什麼問題?(問了一下會不會玩自己開發的遊戲,玩的時候是什麼感覺,還有關於圖形學和 openGL 的學習方法)
作者:victorika
鏈接:https://www.nowcoder.com/discuss/94899?type=post&order=time&pos=&page=1
來源:牛客網
到現場先做一份代碼測試,題目很簡單,但是要保密。。。面試官只在乎你的思路不在乎你寫出來了沒有。
一面:
virtual關鍵字的作用
虛基類有什麼用
static的作用
new和malloc的區別
如何突破private的限制
有一個頭文件聲明的全局變量,其他文件導入這個頭文件,那麼他們訪問的是一個全局變量嗎?
知道內存對齊嗎?爲什麼要內存對齊
如何實現new的時候它肯定是以某字節對齊的
如何讓一個指針new的時候不分配內存
四種類型轉換
inline瞭解嗎?有什麼用?inline一定起作用嗎?
系統堆棧的區別
C++11的新特性有哪些
move有什麼用
模板的參數推導
紅黑樹
樹的dfs和bfs手寫代碼,dfs非遞歸版
爬樓梯每次可以爬1 2或3步,問爬到第n層有幾種方法
一個數字只有一個數字出現奇數次其他出現偶數次如何找這個數。
兩個棧實現一個隊列
三次握手和四次揮手,畫圖,爲什麼是三次握手
tcp和udp的區別
場景題,某個客戶端作出了動作,服務端需要更新到所有的節點,使用udp好還是tcp好,爲什麼?
udp如何實現可靠了解嗎?
http1.0,1.1和2.0
智能指針瞭解嗎
手寫shared_ptr
操作系統有幾種鎖
互斥鎖和信號量的區別
進程和線程的區別
(大概只記得這麼多了)
二面
二面是真的難受,面試官在一個問題上問爲什麼,答出來以後又挑細節繼續問,我。。。直到你答不上來了才換題目真是難受,面試官還一臉嚴肅,搞得我好緊張。
C++內存模型,每個區放什麼
extern "C"知道嗎,幹嘛用的(要說得很細。。。不然問死你)
一個4m的buffer,設計一個方案來分配內存和釋放內存,分配的內存只有1k,2k和4k。
設計模式裏的單例模式知道嗎?手寫一下(寫完繼續問,爲什麼構造函數要private,爲什麼要雙重判斷,等等等等一系列的問題,我真是佛了,我一開始寫的pthread_once_t,他說你這樣我不讓你過,強行讓我改另一個版本)
緩存是什麼(這裏引申了一堆的問題,就不一一說了,真的難受,感覺說越多問得越多)
虛擬內存和物理內存的區別(這個問題又是問得很細,真的頭疼)
靜態庫和動態庫的區別?(哎,這個同上,就一直問。。最後問到底層實現,我想打人了)
爲什麼想來做遊戲研發?
C和C++與腳本語言的區別?
由於被虐得體無完膚,問題都基本記不得了,只記得大方向被人懟過的就這麼多,每一個環節瘋狂深入展開,非要把你問死的節奏是真的難受
這幾天忐忑不安,今天終於等來電話,網易叫明天早上領offer,希望大家也能拿到自己想要的offer
作者:靈溪吳彥祖
鏈接:https://www.nowcoder.com/discuss/111003?type=post&order=time&pos=&page=1
來源:牛客網
下面講過程,挑重點講哈:
先筆試半小時,一題開放地址法插入哈希表,要求元素不能重複,表的長度調整當然也得考慮。
一面:
1.順着筆試題問了哈希表怎麼擴張、插入和刪除。
2.讓你自己設計智能指針你準備怎麼做。
3.描述const、constexpr作用
4.n個數找前k個最大。
5.n個數裏面刪k個,求剩下的數裏面能組成的最大數(當時不是很懂題意,應該是這樣)。
6.樹的後序遍歷非遞歸版。
7.tcp&udp?
8.一個文件裏某函數a()調用另一個函數b(),中間發生了什麼描述下(彙編層面)?函數是怎麼保存當前堆棧狀態的?
9.最大遞增子序列動態規劃的狀態方程,分析怎麼得出來的?
10.C 11新增特性?move語義?非類型的模板寫一個我看看?
一面就記得這些,反正很深的都答不上來,懵逼。
面試官:我看你還是做過遊戲的,要不你轉初級遊戲研發上二面懟一懟?
好的。
二面:
1.筆試題哈希表擴張,怎麼插入,怎麼rehash的,細節呢?
2.聊了一些實習的公司的事,就當是緩和氣氛?然後開虐?
3.設計一個timer(float dt, function<> callback)函數,傳入時間和函數指針,到指定時間後調用函數(學過cocos的都知道,就是設計scheduleUpdate),我直接算執行每個回調需要的具體時刻,然後放最小堆了,不知道對不對。
4.設計完了?你確定?描述下?然後呢?怎麼優化?
5.一個黑白顏色各佔一半的轉動的圓盤,可以在上方隨意放檢測下方顏色的傳感器,最少放幾個可以知道是順時針還是逆時針轉?
6.聊項目,聊cocos,爲什麼每個node需要visit()?幹嘛用的?cocos內存管理?PoolManager幹嘛用?
7.用過哪些設計模式?組合和繼承區別?各自優缺點?(我就是扯引擎用到的那些)
8.字符串翻轉。
9.爲什麼之前選擇去棋牌公司實習?不是浪費時間嘛?不過你乾的活倒也不是完全沒含金量(一邊看着我的簡歷),......
最後問問題環節,說我基礎不是很好,cocos是懂一些,但是看的不夠多,需要回去找原因繼續研究。
總得下來面試官還是不錯的,除了一直對着筆記本打字,應該是記錄面試表現以及打分啥的,但是有時候你會有種被忽略的感覺(尤其是答不出來的時候)......
不用等結果就知道自己涼了,回去多補補來年秋招再戰吧。
多說一句,涼了的同學千萬別灰心,面試能暴露出你的很多問題,而發現問題是很幸運的。而且我上次投簡歷是筆試都沒過,但是這次是在二面掛的,下次說不定就進了呢哈哈哈。年輕人有股勁就是拿來闖拿來學習的,有激情就釋放到自己熱愛的領域上,不然怎麼會進步呢是吧。
操,我現在只想回去打幾把爐石壓壓驚。
作者:舊習難改
鏈接:https://www.nowcoder.com/discuss/114820?type=post&order=time&pos=&page=1
來源:牛客網
開始做筆試題,由於牽涉到保密信息,在此不便透露題目。
做完筆試題稍作等待,便被人帶到了12樓等待前一批人面試完成,其餘4人先被帶至指定房間面試。
面試我的那個面試官和我之前的面試的比較久。。。
等待n久之後,我前面的同學出來,我們聊了一下面試官性格(我只問了一句:“面試官是一個不苟言笑的技術宅嗎?”,根據以往經驗這種人是最難應付的,但是得到的回答是面試官是一個非常健談和喜歡較真的人,什麼問題都會一直問下去,直到自己不會)。
隨後我被帶到了面試官房間,自我介紹,介紹剛剛題目的思路,開始問技術。
1. C++虛函數,我開始向虛函數指針和虛表那塊說,中間無意中說出了自己曾經看過虛函數表在elf文件中的位置,遂停止讓我介紹虛表。
2. 開始問虛表在elf文件何處以及基本形式,答完之後開始問關於elf文件相關知識。
3. 怎麼查看elf文件的頭部信息。
4. 開始測彙編能力,問函數調用時會幹什麼(當時很懵B,隨後提示一定會執行什麼語句)。
5. 開始問gdb相關知識,大概問了幾個調試命令。
小插曲,他吐槽了一下,你爲什麼報的是初級開發工程師(回到投遞簡歷時研發工程師至少是研究生才能投遞)。
6. 開始轉戰STL,問用過哪些,還有map那點破事。
7. 丟給我一組數讓我建一棵紅黑樹,並詢問是否記得紅黑樹創建規則,向其坦白自己記得不是太熟,他說沒啥,就不浪費時間了遂放棄本題。
8. TCP/UDP那點破事,因爲本人暑假實習做的是這個相關的,所以它讓我用UDP實現可靠數據傳輸,我說了幾點策略,但是不太滿意,並反問道你暑假不是作的這個嗎?遂向其解釋,只是做了一箇中間層,底層可靠數據保證是別人github上面的完整工程,並向其道歉,說讓他失望了,但是回答的很爽快“沒關係”。
9. linux那點破事,大概問了幾個命令,最後一點是我沒想到的,記錄當前資源佔用率的文件存放在哪(只是大三做***作系統實驗的時候用過,隱約記得是proc,便隨口答了)。
10. 問了一個趣味問題。
一面結束,它讓我把之前寫的代碼交到hr處,到hr那裏等待結果,但是我推託說下午學校有答辯(實際爲百度三面),遂離開,在地鐵站等待地鐵時hr打來電話,一面通過,讓回去二面,遂又解釋了一番,於是那邊回,如果答辯在5:30之前結束,可以聯繫他,並回來繼續參加二面。
百度三面結束是4:40.於是再次乘坐地鐵回到網易面試處繼續二面,等待n久之後被帶到面試官哪裏,最擔心的事發生了,面試我的面試官是一個面癱技術宅。
1. 先介紹一下自己,介紹一下項目,並就項目問了幾個問題。
2. 爲什麼不讀研。
全程說了5分鐘,他表情沒有變過。。。
3. 開始問問題,地圖中有一個圓圈,怎麼樣保證丟的補給可以均勻落到地圖各處。
回答1.0,隨機生成座標點(x,y),首先判斷是否在園內,在就投遞。迴應:可以但是需要判斷較爲麻煩,優化一下。
回答2.0,以圓心爲原點,隨即生成半徑和角度(r ,sieta不知怎麼打)。迴應:不均勻,圓心處比較密。
回答3.0,以圓心爲原點,隨即生成半徑平方和角度(r^2 ,sieta不知怎麼打)。迴應:可以,但是證明一下落點是隨即的。
。。。想了n久沒有想到證明方法,只得坦白剛剛只是直觀感覺。
(面無表情,我們換一個問題)。
4. 怎麼樣均勻洗一副撲克牌。
回答1.0,使用隨機數函數,每次生成一個數然後和剩餘牌數取餘,然後將該下標牌取出。(面無表情,記載)。。。
5. 排瓷磚,經典斐波那契數列問題。
6. 快速獲得一個隊列中的最大元素。
7. 有什麼想問的。
二面結束,回到學校已將近7點,吃了點晚飯睡覺,今陪考研室友呆了一天圖書館。
晚上回來接到hr短信,說後續通知,10點左右hr小姐姐打來電話,告知明天8:30參加offer研討會,不要遲到。
無意間聽說自己的offer上面職位爲“遊戲研發工程師”,激動萬分,遂向其確認,得知沒有搞錯。
於此本人秋招行程結束,不管百度那邊是否發放offer,但留在豬場大概已是定局。