很早就在官网上投了简历,简历投递之后就是在线测评,主要是智力测试题,很多图形逻辑题,不是我擅长的,个人感觉难度偏大。
之后就是接到一笔通知,周六下午在大学生活动中心,大概两三百人的样子,估计在线测评,还是刷了不少人的。
三个大题,第一大题是五个单选题,主要是C语言/C++语法,比较基础,我这种几年没写C的人都会做。
第二大题是填空题,难度就加大了,记得第一题是:
a = 5,执行 a+=a-=a*a后,a的值为?
第二题是个位运算题,第三题折半搜索,剩下两个是写代码结果。
第三大题就是三个编程题,C/C++/Python中任一种,要写编程思路:
1. 假设有函数 int random(int n),传入参数n(n>0),会返回在0到 n-1中的任意一个数。编写函数void randomlist()实现:在正负整数区间[-20,20]内随机输出5个int型数值,让他们的和为0。
这题真心不会,当时乱画乱写了一通,也不知道对不对,有哪位大牛,可以帮帮看看,分享一下~~
2.给定单链表的头指针和某个结点指针,在O(1)时间删除该节点。
这里,主要是注意O(1)时间。难度不大,这里有一个比较好的解决代码:
http://blog.csdn.net/fanzitao/article/details/7901615
3. 给定两个元素皆为正整数的数组X和Y,请找出满足如下条件的数对的数目(时间复杂度需低于O(m*n),m和n分别是X和Y的元素个数):
条件:x^y > y^x, (x来自X,y来自Y)
这个最重要的也是这个时间复杂度,当时实在不会,就写了个最直接的暴力法,复杂度O(m*n)。
事后想了想,可以对原式子做数学变换,变得更加简单。因为题目说了,x,y都是正整数,我们可以对两边取对数,
得到:ylog(x)>xlog(y),x和y都是正数,则进一步有:两边同时除以xy,则:log(x)/x >log(y)/y。
这个式子,看起来也复杂,但是,x和y都在各自的一边,要简单的多。 对于log(x)/x >log(y)/y,
1. 数组X和Y分别计算log(x)/x,log(y)/y
2. 然后对Y进行排序O(nlogn)
3. 遍历X数组,对于每一个x,在Y中,进行二分查找,即可。
总的时间复杂度为O(nlogn + mlogm).
最后很是意外的接到了面试通知,第二天去了,是在酒店里面远程面试。。。对着摄像头说话,汗!
面我的面试官很年轻,主要是根据简历来面的,简历上写了什么他们就会问什么。面试官语速超快,像打机关抢一样,根本没有时间思考。他们只有一轮面试,个人感觉还是挺仓促的,就这二三十分钟时间。
先是自我介绍,然后问了我的论文的内容,涉及到的算法等等。
然后是C语言,问了内存泄漏,还有用c语言写过什么东西,简单介绍了一下,因为code这方面确实很弱。。。
c++也问了些,已知一个int 型数组第一个元素内存地址,求第五个元素的内存地址。。。后来才想起来,慌乱中,这个貌似说错了。。。
然后就是数据结构,知道哪些高级数据结构?回答了数和图,就问,如何用c语言,描述二叉树?
中间穿插了一些hr面的东西,知道我有男朋友(简历问了),问了我们毕业之后的计划,是否打算都去广州工作。。。然后问了,不喜欢哪种人?平时喜欢看什么书?
问了游戏经历,然后说在一个场景中,npc购买道具过程如何设计?对游戏确实不熟,加上当时的环境,愣是不知道说啥。。。
最后问了我现在正在做的,ios开发,问我objective-C怎么学的?做了什么东西?
最后还是老问题,有没有要问他的?问了实习生和应届生的招聘,我说自己的code比较弱,该怎么提高,他给了一些建议,
总体基本上都是走流程,所有问题都是点到为止。。。面试过程很不适应,没表现好。
code弱,加上对网络游戏不熟,做游戏开发确实没竞争力。。。等结果中