网易2021暑期实习 游戏开发 笔试
昨晚参加的网易的这次笔试,是我做过所有应聘笔试里最容易的。两个半小时,才3道题,难度较高的只有一题。
题1:printf中的if
小易刚学C语言,学了if和printf,他想自己写一个printf函数。于是他写出了如下的代码:
void myPrintf(char* format){bool token_flag = 0;while(true){if(*format == '\0'){/* Handle */return;}else if(token_flag){if(*format == 's'){/* ... */token_flag = 0;}else if(*format == 'd'){/* ... */token_flag = 0;}else if(*format == 'u'){/* ... */token_flag = 0;}else if(*format == 'p'){/* ... */token_flag = 0;}else if(*format == 'f'){/* ... */token_flag = 0;}else if(*format >= '1' && *format <= '9'){/* ... */}else if(*format == '%'){/* ... */token_flag = 0;}else{/* ... */token_flag = 0;}}else{if(*format == '%'){/* ... */token_flag = 1;}else{/* ... */}}format++;}return;
}
小易不会swtich,只好用很多if else。他想知道,对于给定的语句,myPrintf函数会进行多少次if判断(else不算)。
例如,对于%2d,会进行16次if判断。
这题乍一看我头都大了。给了这么长的代码(结构是这样,注释等处不一样),不知道有什么用,而且字符串处理是我的弱项。
仔细观察,发现其实很简单。分析可知,由于每一个字符的判断次数只和它自己以及token_flag
的值有关,每个字符至多只有两种情况,那只要把字符串从前到后扫描一遍就能得出结果。
我画了一个表:
t_f | \0 | s | d | u | p | f | digit | % | other |
---|---|---|---|---|---|---|---|---|---|
0 | 1 | 3 | 3 | 3 | 3 | 3 | 3 | .3 | 3 |
1 | 1 | .3 | .4. | .5 | .6 | .7 | 8 | .9 | .9 |
t_f
表示token_flag
,第3行第3列就表示扫描到s
时会增加3次if
判断次数,小数点表示会改变token_flag
的值。
然后扫描就行了。甚至不需要用c/cpp,用Java即可。
题2:乒乓球比赛
公司里有两个部门A和B要举办乒乓球比赛。每个部门出3名男选手、3名女选手,举行男双一场、女双一场、混双一场,每人只能参加一场比赛。
部门B的小亮想知道,自己的部门有多大可能赢。为此,他给双方共计12名球手做了分析,给每个人都打了一个战力分数。他认为,一场比赛中,两个选手的战力分数加起来高的那一方会获胜,如果一样高则A部门获胜。
他希望知道,一共有多少种阵容能使得部门B获胜。定义两个阵容是不同的,当且仅当其中至少有一场比赛有一方派出了不同的选手。
乍一看又很难。仔细一想,其实每个部门只有9种阵容,因为关键在于派哪个男哪个女去参加混双,一共只有3*3种选择。
假设1、2、3为男选手,4、5、6为女选手,数组cast[6]
是1~6的一个排列,前两个选手参加男双,中间两个参加混双,后面两个参加女双,那么一个部门的所有阵容都可以用cast
来表示,而cast
只有能形成以下九种不同的阵容:
1 2 3 4 5 6
1 3 2 4 5 6
2 3 1 4 5 6
1 2 3 5 4 6
1 3 2 5 4 6
2 3 1 5 4 6
1 2 3 6 4 5
1 3 2 6 4 5
2 3 1 6 4 5
两边一共也就81种。那我全算一遍是不是就可以了……我就写了个这么暴力遍历的算法,结果就过了。
这数据还是太宽松了(窃喜)。
题3:迷宫最短路径
有一个迷宫,里面一片漆黑,不知道哪里能走、哪里不能。
但我们现在已经有了一条从起点走到终点的记录。这个记录走了很多步,有时会发现一个方向走不通,则停在原地;有时能走通,则移动位置。
现在希望根据这条记录,找出从起点到终点的最短路径的长度。请注意,如果一个位置没有被探索过,则认为是走不通的。
输入格式:
第一行是数据组数。每组数据对应一个迷宫,其第一行是路径记录的步数n
( n ⩽ 1 , 000 , 000 n \leqslant 1,000,000 n⩽1,000,000),接下来n
行每一行表示一步。一步由两个整数组成,第一个整数是{0, 1, 2, 3}之一,分别表示向上、向下、向左、向右;第二个整数是{1, -1}之一,分别表示能走通、走不通。
输出格式:
对于每组数据,输出从起点到终点的最短路径的长度。
一个很朴素的思路是,画一个巨大的地图,根据路径记录把所有能到达的地方都标出来,其他地方标为不可到达,然后广搜。
这样引出两个问题:
- 起点应该放在哪里。由于起点位置是没有给出的,后面的方向在建立地图时也是位置的,所以难以确定把起点放在哪里。最万全的方案当然是放在正中间,但那又引出第二个问题。
- 内存不够使用。即使问题1不存在,已经确定起点在迷宫左上角,由于步数的上限是一百万,为了覆盖诸如“连续往右走一百万步”的极端情况,不得不把数组开为
map[1000000][1000000]
,内存空间严重不足。那如果考虑问题1,数组又得变为原来的四倍大小,更不可能。实际上给c/cpp的空间就只有65536KB(具体数字可能不对,但肯定是万KB的数量级),给Java的也只是大概两倍而已。
我只开了个100*100的数组,想着能过一点case是一点。然而由于我脑子抽了,不用广搜用了深搜,不断地超时,过了0.00%的case。
暂时不知道怎么做。
网易2021暑期实习 游戏开发 笔试相关推荐
- 网易2021暑期实习 游戏开发 一面
笔试是在5月6日晚间完成的,试卷标题上写着"零散批",估计是因为投递简历太晚了. 笔试情况前文已经说过,3题我做出来俩.11日收到预约面试通知,让我选择一个时间进行面试.网易的面试 ...
- 暑期Android游戏开发——小兔子跳铃铛(附源码)
暑期Android游戏开发--小兔子跳铃铛(附源码) 一. 背景说明 我在南京的一所高校学习软件工程.学院里每年会举行一次"创新杯"软件比赛,鼓励同学自主学习和创新.我和几个好兄弟 ...
- 网易游戏2021暑期实习生 游戏运营管理面经 已拿offer
今天晚上接到hr的电话 offer会下周发到邮箱 今年的暑期实习算是告一段落了 来这里写一些自己的经验吧 我投递的是杭州的游戏运营管理岗 经一位同学内推 4.17一面 4.28二面 4.30三面 5. ...
- 暑期实习前端面试笔试总结汇总
一.面试 腾讯2020暑期实习--前端电话面试(1)回顾 腾讯2020暑期实习--前端视频面试(2)回顾 腾讯2020暑期实习--前端视频面试(3)回顾 阿里巴巴2020暑期实习--前端电话面试(1) ...
- 2023 CVTE寒暑假实习C++开发 笔试一面面经
笔试情况 2021.12.9官网投递(加入了CVTE实习交流群,填了群里的内推码) 2021.12.20笔试(第二场) 形式是选择+算法题,需要注意的是笔试系统不支持调试运行(只有一个编辑器),也不支 ...
- 招商银行信用卡中心华泰证券暑期实习软开笔试小结
白菜自动化小硕一枚,18届,下学期就正式要找工作了,没有实习经验,感觉心慌慌.现在学校里已经开始各种提前招实习,内推了,so暑假想提前试试水,投一投暑期实习. 看到心水的单位就投一投,4月初收到了招商 ...
- 字节四面-暑期实习后端开发
文章目录 字节一面 字节二面 字节三面 字节四面 流程: 3.2内推,3.3收到一面通知,无笔试 3.8号一面,次日hr发邮件通过 3.17二面,次日hr发邮件通过 3.23三面,3.25hr通知三面 ...
- 腾讯和网易相继投资海外游戏开发公司
我国两家游戏开发巨头继续增加对海外游戏工作室的投资.这两家公司已加紧向海外扩张,以应对国内增长放缓局面. 日本游戏开发公司FromSoftware Inc.的母公司表示,全球最大的游戏公司腾讯控股有限 ...
- 网易视频云:游戏开发性能优化经验总结
网易视频云是网易倾力打造的一款基于云计算的分布式多媒体处理集群和专业音视频技术,为客户提供稳定流畅.低时延.高并发的视频直播.录制.存储.转码及点播等音视频的PaaS服务.在线教育.远程医疗.娱乐秀场 ...
最新文章
- MySQL源码包安装
- (4)关于Alpha通道问题
- (转载)VS2010/MFC编程入门之五十四(Ribbon界面开发:使用更多控件并为控件添加消息处理函数)...
- OSPF网络类型详解
- jsp oracle 登录页面,Oracle数据库之ORACLE+Myeclipse+jsp实现简单登录功能
- 【转】时间序列分析——基于R,王燕
- Javascript 获取字符串字节数的多种方法
- 为什么计算机语言都是英语,编程为什么都是英语 编程为什么没有汉语
- python3.4安装vc_Python3.4 用 pip 安装lxml时出现 “Unable to find vcvarsall.bat ”?
- MNIST数据集下载及可视化
- linux安装typecho教程,Typecho上手指南
- Ubuntu下 Tomcat + JSF + Ant + eclipse 开发环境搭建
- 【Linux】Centos7重启网卡失败
- LNMP下Redis介绍以及安装(Linux)
- C#中唯一的三元运算符
- 如何实现甘特图独立安装
- DDos攻击防御策略
- mysql反思范文_MySQL学习笔记(一)
- 【渗透测试】CS DNS上线(DoH隧道技术实践浅析)
- ORA-02396:超出最大空闲时间,请重新连接