腾讯IEG游戏客户端开发暑期实习提前批凉经
背景:广东985大三计科在读,投了简历后,大概3天就打电话约面试,当时还没怎么复习很慌,所以约了下一周周二(今天)电话面,也是我第一次面试。
面试官是光子工作室的,先交流了一下目前情况,然后问了一下项目方面的问题。
项目的话我写的是一个pygame一个unity的小游戏,都挺demo的。
1. 问了对unity的熟悉程度(我怂了一下,回的是用过),然后问在项目中你感觉到Unity核心设计上的思想有哪些?(引导:不在于正确与否,你认为他有什么设计思想在里面)
然后了解一下平时基本用什么语言(C++),会不会脚本语言。接着就开始问C++。
2. 在C++里面,怎样去重载new操作符?(这里我回答的是写法)
重载new有什么意义?引导-> 如果我已经有一块空间了,我想在已分配的空间上初始化一个对象,那应该怎么做。
3. 拷贝构造函数应用场景。和operator = 的比较。有没有默认拷贝构造函数(这里我感觉想问的是浅拷贝深拷贝,但是蒙了没回答好)
4. delete的过程做什么。析构函数有没有默认析构函数。可不可以是虚函数,为什么?
5. C++11了解吗?(只用过一点lambda,了解智能指针之类的)解释右值引用和左值引用。(没用过,很尴尬)
然后就问数据结构和算法。
6. 列举知道的排序算法。
7. 解释快排的原理。平均算法复杂度。最差情况算法复杂度,最差情况的场景,怎么避免最差的情况?引导->怎么选pivot。
8. 还有什么算法复杂度在O(nlogn)的排序?(我没说希尔排序)追问希尔排序的时间复杂度呢?
9. 有没有平均算法复杂度优于O(nlogn)的算法?(我说了,情况好的时候,数据范围限定的话,可能基数排序可以)如果没限定数据范围,有没有?(我直接说没有)
10. 在无法限定数据范围的话,为什么没有优于O(nlogn)的排序算法?
11. 对链表结构,怎么判断有没有环?(快慢指针)解释快慢指针的做法。
12. A*算法了解吗?(忘了,跳过)
13. 有向图的dfs和bfs的区别。
14. 无权重的图,怎么找最短路径。(用广度)这样做的算法复杂度。
15. 有权重的图,怎么找最短路径。(dijkstra)解释过程。时间复杂度。
16. 讨论dijkstra时间复杂度图中,转向讨论找最小的节点时,转向讨论堆。堆插入时间复杂度。
最后问问题环节,问了实习生可能的安排。回答,直接做项目开发,工具方面不需要太在意,主要还是看重基础,底层的原理。
最后看网站是变灰了,给我的点评是,数据结构和算法还可以,C++基础不够扎实。
#腾讯##实习##面经##提前批##C++工程师##游戏研发工程师#