网易2020春季c++实习生招聘 笔试回忆"/>
网易2020春季c++实习生招聘 笔试回忆
题型
- 单选 10道
- 编程 4道
- 问答 2道
单选
单选涉及到的几个部分有:
- c++语言特性,面向对象主要还是继承和虚函数
- 操作系统,考了生产者消费者对信号量的处理以及对进程的挂起和唤醒逻辑
- 图论,考了一道无向连通图的特点,还有一道BST相关的时间复杂度问题
- 程序阅读
编程
1.城市封锁
- 输入城市数量n、消息数量m、目标城市f,以及n行消息,每条消息有两个整数,x和y,代表城市x和y之间的道路已经封闭,如果x为0,则代表城市y已经封城
- 输出一个整数,代表第几条消息过后可以得出目标城市已封城的结论,无法得出则输出0
- 思路:判断一个城市被封城,要么宣布f封城,要么f与其他城市的道路全部阻断,可以设置一个set代表f与某一城市的道路是否被封闭。
对于每一行消息输入,如果x==0 && y==f
直接输出消息计数,其他情况没如果道路的一头是f,且另一头不在set中,就把f的道路计数-1,并更新set,若f的道路计数为0,则输出消息计数。
2.感染者人数
假定一个城市有n个人,会举办m场聚会,一个病人的编号是f,试问举办过m场聚会后城市的感染者人数,假定只要聚会中只要有一个人是感染者,其他人均会被感染。
- 输入:n,m,f,接下来m行,每行若干个数,代表本次聚会的参与者
- 输出:一个数,所有聚会过后感染的人数
- 思路:用一个set存储感染者,对于每行聚会:如果有人感染,就把这次聚会的所有参与者全部加入set,最后输出set的大小。
3.分割数字取模
- 输入:两个数s,n
- 输出一个数,代表不断的分割s,所得的两个数均可以被n整除的情况的个数,题目提示所得的答案会很大,要对10^9+7取模。
- 思路:很菜的直接循环分割,用string记录输入,不断的substr然后stoi,记录能否被n整除的次数。
4.激光分割的路径
有一个迷宫,迷宫中有若干障碍,现在要找到从起始位置到终点位置的最短路径。
迷宫中有激光发射器,激光从一点射出,直至到达边界、障碍、激光发射器停止。
每次可以向八个方向移动一格,但要求这次移动涉及到的两个格子不能同时被激光照射到。
- 输入:一个图,起始位置和终点位置
- 输出:(好像是)接触到最少的激光的最短路径长度
问答
1.stl::map和stl::unordered_map的区别
2.比较贴近实际的一道题
有一个50GB大小的文件,文件中的每一行是一个整数。
有一台配置为256MB内存,若干大小机械硬盘,若干速度的网卡,还有一些硬件记不清了,的处理机。
(1)要求从这个文件中找到前1000大的整数;
(2)加强了配置,如何优化;
(3)现有20台处理机,如何优化。
更多推荐
网易2020春季c++实习生招聘 笔试回忆
发布评论