创新工场
100 - 499人 | 互联网 | 私营·股份制企业 | 北京
查看全部25条面经 面试经验共25条面经

叶思齐

共面试1轮 未获得工作

【面经】创新工场某公司电话面试——开膛手jack的“内心告白”
 
前天下午收到创新工厂的电话面试通知,仿佛自己一直坚持的道路前方有了一丝光明。不过对方要求我去他们公司做的是android手机游戏开发。这似乎与自己的坚持又有些背道而驰的味道,不过还是暂时决定试一试。于是开始谋划改变自己的实习与学习计划,正准备着手开始学习JAVA,但是面试的惨痛经历让我幡然醒悟。既然一直坚持,那就需继续保持,并且落到实处。




今天早上翘掉了单片机和WEB技术两节课,在寝室里看Android的资料,算是对它有了基本的认识。下午又继续翘掉了Linux跑到软测中心去机试,题目是:利用Myeclipse+tomcat+SQLserver构建一个web用户资料的管理系统。一直执着于C和C++的我自然是交了白卷。最后老师还是决定把我留下,写测试部分的代码。

说是交白卷其实并不确切,因为要检查的时候我的面试电话来了。我只好舍弃了被我瞪了2个小时的电脑去回答面试官的各种问题。




首先是自我介绍,没有任何经验的我,几乎是把简历上的内容复述了一遍。好在对方似乎也并不期望我能说出什么非常出彩的话来,于是就直接切入正题开始了面试考核。




第一道题:

怎样得到一棵二叉树的深度?

这其实就是一个二叉树的遍历问题,我当时很抽风的来了一句“这个可以用BFS来做”,结果后面讲的其实是中序遍历@@,后面说的也就是中序遍历。关键的地方其实是设全局的静态变量max,并且不断的更新它。使他与最大的节点高度相同。




第二道题:

一个12级的台阶,我们可以一次走1阶或是一次走2阶,问总共有多少种走法?

我当时条件发射的想到了高中数学竞赛的走格子。从(0,0)走到(12,12),然后跑回机试的机房去借纸和笔,算了好一会儿才发现根本不对。后来在面试官的循循诱导下,发现了这其实是一道简单的非波拉切数列题目。@@




第三道题:

给定一个超过10万元素,每个元素均不大于1000的数组,怎样对其进行排序?

这个题目就要多亏了晓东。明显的是这些元素中会有很多重复的元素。计数排序无疑是最佳的方式。




第四道题:

怎样的到字符串的最长回文子串?

这道题目的来源是我在跟面试官聊到自己的ACM经历时说“一般我们是分工协作,简单题和字符串的题目归我做”,然后就来了这么一道强力的动规“字符串”题目。纠结了半天还是没有想出来,这让我觉得自己的算法设计和ACM搞得都十分的酱油!




二面是在寝室进行的,我晚饭也没吃就在寝室傻傻的等在手机前面,结果新的面试官似乎更加的强力。出的题目一道比一道犀利,或者说一道一道击垮了我膨胀的自信心。

第一道题:

给定一个链表的头节点,怎样反向输出该链表的各个节点?

这道题应该都会想到把链表节点指针保存在数组中,然后反向输出数组元素所对应的节点。但面试官似乎对我的答案不是很满意,后来一想这似乎可以利用一个临时指针将整个链表反向,然后再输出。不知道面试官是不是在等着个答案。后来打电话过去想和他讨论讨论,结果号码是总机号码,人家公司有好多分机。。。




第二道题:

对于STL中的set应当怎样设计?

我在简历上大言不惭的写着精通C++@@这才导致了这么犀利的问题。面试官首先是问我有没有研究过STL的源码。我只好承认自己看到各种template头疼了。他似乎还是很想给我一个机会,于是继续在STL的问题上面找容易切入的点。谈谈对set设计的看法?我自然是晕了,依稀还记得自己说了一个什么下标访问,当时就想抽自己。




第三道题:

怎么样的道一个类的唯一一个实例。

这还是自己在郭克华老师的JAVA面向对象课上与最近的C++培训中学到的:单体模式。

在类中声明一个静态变量,变量类型就是该类的指针。将类的构造函数私有化,然后定义一个共有的getInstance函数,用来得到类的静态指针。




第四道题:

给定一个数组(长度为n),怎样找到其中个数大于n/2的那个数?

这道题目前前后后给了好几种方法,都不行。

第一种:筛选。如果一个数上次出现的位置与当前位置之差大于n/2,则排除它。

第二种:统计。

第三种:冒泡。

上面各种方法都受到了无情的批判。只恨自己学艺不精啊!




这次电话面试经历给我敲响了警钟。一直似是而非的状态不能再持续下去了。既然坚持了三年学习C语言和C++就不应该临了了变挂,到最后只会什么都没有学到。

除此之外,一个关于这个学期学习发展的计划也在我心中渐渐明晰:

第一:把C语言和C++学踏实;

什么叫踏实,其实从STL那到题目就可以看出来我的C++还很烂!C语言不需要做出什么东西来,只需要把指针学懂,学精就好了,C++需要把STL部分深入的了解,至于界面,还是继续学我的Qt。




第二:把数据结构和算法设计两门功夫练熟;

BFS和DFS都分不清楚的ACM队员相信是个教练都不会要。至于自己一直恐惧的动态规划,则需要多练习来克服这种不知道从哪里冒出来的消极心态。




第三:现在是面向对象的天下;

其实我也不知道自己对于JAVA讨厌源自何处,一直都对他有排斥心理。这其实也是自己3年几乎没有碰过JAVA的根本原因。其实相对于C++,JAVA更能适应当下日益丰富的客户需求。面向对象的思想与基本方法也需得是自己多下功夫实践的方面。




第四:自信与充分的准备。

在电话面试中,我对于自己的不自信可谓体现的淋漓尽致。当然这也与实力和准备不充分相关。对方其实给了我2天的时间准备这次电话面试,结果我花了1天半的时间与隔壁寝室的少年们一起练习自己的dota技艺,这也是此次面试失败的主要原因之一。




在这里,想对301的诸位dota菜鸟们说:咱们不要这样练习了吧?再怎么练也只能开个淘宝店。。。兄弟们啊,前途与心爱的女生和我们渐行渐远啊。。。




2012年3月9日20:36

于昨天悲剧了的7层楼图书馆
2013-08-30 20:04:28 0 0
回答或评论0条

登录后,参与评论

评论不能为空

确认删除?

x

你新收到1封创新工场的职位邀请信