首页 > 祖龙游戏一面 C++游戏服务器开发
头像
dxgzg
编辑于 2021-08-19 12:22
+ 关注

祖龙游戏一面 C++游戏服务器开发

base:上海 岗位:C++游戏服务器开发

1.上来就是一道算法题,大概就是随机一个c数出来,a和b两个人各有一个数字,看这个手上的数字和c差值,相同差值b赢。已知b的数字和数字最大上限,求a等于多少获胜概率最大
懵逼了,谁想到是道思维题啊。过了十分钟说不会做。

2. inline函数?直接在代码展开了,不需要出栈和进栈所以速度快,但是也会占更大的空间。inline函数里面不能有for循环和递归。谷歌规范,inline函数里10行为最佳。在对比一下define函数

3. 栈区和堆区的区别?栈区更容易写进寄存器里,因为地址是连续的,CPU有预读功能,可以读一行数据。堆的空间不连续更连续

4. 以前是没有堆区的,为什么需要堆区?扯到链表去了,说这种结构不需要连续空间。面试官告诉我,差不多把,因为不是所有数据都需要先进后出

5. 内存模型都有什么区?栈区、代码区、堆区、静态存储区

6. stl用过吧?vector、list、deque,面试官绝对是个大佬,deque底层都感觉研究明白了。

7. map和unordered_map区别?map是红黑树,红黑树根和孩子节点是黑色,两红色节点不能相邻,有左旋、右旋、变色操作,而且中序遍历也是有序的。unordered_map哈希冲突,开链法或者扩容解决,时间复杂度是O(1)的。需要排序的话就首先选红黑树

8. 哈希是无序的,那我想让他保证插入删除的顺序呢?LRU算法思想讲一遍就行(lc原题)

9. 洗牌算法?我问考虑多发好牌吗?不考虑,简单就行?假如斗地主,那就第三个人随机发17张,更新牌堆信息。

10. 广度和深度怎么做?巴拉巴拉

11. 深度不让你递归你怎么办?那我就广度优先遍历拉。。。

12. M个苹果N个盘子的有多少种摆法,允许空盘?dfs+回溯思想

13. udp和tcp的区别?tcp字节流、udp数据报,udp会被ip分片。tcp的流量控制、拥塞控制、快重传、超时重传简单介绍介绍

14. time_wait作用?保证服务端的FIN有个响应,别客户端发完ACK但是ACK丢了,服务端重传FIN发现崩了。还有避免老的连接

15. 游戏排行榜怎么做?我问可以借助redis这种东西吗?可以的,那就跳表去做吧

16. 跳表是啥?简单介绍了一下就是个带索引的链表,比红黑树实现简单一些,那会我也看了下跳表的缺点,插入太多元素会造成索引效率降低。

17. 如何判断链表有环?快慢指针

18. 两个有序数组merge成一个

19.select和epoll区别?这区别闭着眼睛都能背出来了。


没反问,听面试官意思这面过了可能就发offer?面试体验还是蛮不错的,除了第一道题目没绕明白。

更多模拟面试

全部评论

(2) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐