宜信这边我投递的是技术研发中心的后台开发岗位,它的笔试平台和360用的是同一家,也是不支持Python的,我只好抓紧看看STL了,C++走起。
笔试
本来以为宜信做金融的,可能技术方面要求不是太高,再加上昨天360水水的笔试,对今天的宜信就大意了,结果没想到宜信的编程题意外的难!选择题倒是还好,虽然考的都是Java方面的,但是感觉挺简单的,就面向对象啊什么的,也没涉及Java特性的东西。但是编程题对我来说简直难炸天了 ...
第一题:
我的做法:先求平均数,然后从左往右扫一遍,① 低于平均数的i往右向高于平均数的j索取,索取多了可以分给右边需要的人k(k<=j),移动次数只记j-i;② 高于平均数的i往右给予低于平均数的j,j得到太多了也不管,留给下次扫描到了再管,这里记移动次数为j-i;
第二题:
这题跪惨了,如何求两人洗某种颜色的衣服的最优时间,我没思路,没思路,哎,隐约觉得要动归一下,但是也只是隐约而已。
第三题:
这题其实很简单,别人一下就看出f(n)=f(n-1)+f(n-2)的思路了,我恍然大悟地觉得对呀,但是没机会提交验证了,当时做题的时候我也想到递归一下,怎么就不知道往这“走楼梯”的办法类比呢,笨啊,还是太笨了,脑子不灵活。
一面
早来了半小时,等候的人超多,有点出乎意料,发现来面试的女生都比学校的好看。一面的面试官是个中年男人,已经有前额秃发的趋势,自称玩C++多年,现在已经转Java了,从交谈中看出应该还是有些水平的。
先谈了项目,还是谈的基于马尔科夫链的加密流识别,他明确表示还挺感兴趣。接下来问C++,他表示公司大面积用Java,C++用的极少,但看我的简历还是问问。用过boost库吗,上来一个问题就把我整蒙,尴尬表示没有,他已经发现我的C++其实不咋样啊,之后关于C++的问题还有内存管理,释放内存的几种方式(手动delete,析构,还有什么吗)。对了,他在翻看我笔试代码的时候发现我的内存没有释放,日了狗了,这都被发现,扣分了扣分了。
手写一题代码,给定一个数组如[1,4,3,7,9,8,12,6],求其中能构成max(数组)+1的组合,例如这题的max+1=12+1=13,而能够的有[1,12],[4,9],[7,6]。我说了两种O(N*N)的解法,然后提出一种O(NlogN)的基于快速排序后头尾双指针的解法,他表示OK,那就写出来吧,用Java写,我表示不熟悉,结果还是用Python写出来。不过他表示还有更快速的方法,我暂时没有想出来。
最后问我,如果int * p = &buffer,这个地址可能不对齐,你要将其手动对齐,该怎么办。(当时我又蒙蔽了)
二面
二面很快,感觉不到20分钟就结束了,感觉二面面的不好,问的都是我不太擅长的。首先看我简历以为我是做密码的,问我中间人破解SSL的方法,我表示这真不知道。然后问我C中关于函数指针的定义,赋值,调用,然后是C++的多态。然后问我在继承关系中,如果父类定义了一个变量a,派生类也定义了变量a,那么派生调用的a是派生自己的还是父类的?如果是自己的,那么要调用父类的,该怎么办?
接下来是数据库,问我用过UNION没,哥,我没用过啊,那SQL中的where in和where exists有什么区别呢,哥,我还是不知道啊,跪了啊,然后数据库就跳过了。
最后问我eclipse中的jar是怎么管理的,哥,我也不会,我用的是IDEA,扯了一通maven,然后给他扯Spring MVC和MyBatis,(他说iBatis,而且他用eclipse,可见技术比较怀旧啊),我大概谈了下Spring MVC下的MyBatis怎么和数据库交互,他问了事务,我又含含糊糊了。他对我的总结是看起来用过很多,做过很多项目,但实际上都非常非常浅,暴露了这一大缺点后,他也不想和我再聊了,说他就是终面,然后就让我走了。
总结来看,宜信的技术研发中心只能说一般,我能感受到的,面试流程安排和工作环境令人不是很满意,正式秋招的时候关于宜信的话就去试试大数据中心好了,本次实习面试面到了很多我不会的,也算是很有收获,起码暴露了自己C++基础不够牢固,数据库方面缺陷严重,接下来好好打打基础。
收到offer
距离宜信面试正好过了一个月,收到电话发offer,不知是不是备胎转正,4500一个月加300饭补,工作时间从上午9点半到下午6点半。主要考虑三点,第一实验室能不能放实习现在又成了未知数,第二宜信技术研发中心地理位置离学校太远,第三工作环境和氛围给我的感觉不是太好,我倾向于拒掉这个offer。秋招想去宜信大数据试试,希望不要受到这次的影响才好。
网友评论