电话打来得很准时,说...电话打来得很准时,说好的下午四点,刚好到点了就打来了,整个面试过程相对比较轻松,聊得比较愉快,估计是面试官终于不用写代码了,还能来聊聊天,挺开心的,他先是介绍了整个面试过程的时间分配,整个面试过程将持续一个小时,其中前45分钟主要是通过他提问我回答的方式,后15分钟的主要时间是由我来问他一些相关的问题。
接着就开始面试过程了,首先他让我用英文进行一下自我介绍,哈哈,还好我之前预备了,就想到这样的外企应该有英文的自我介绍,直接拿出来几乎是照着之前写的稿子念,不过可能我口音的问题,他没听清我的家乡是哪里的,还有我是哪个学校的他竟然都没有听清,后来问了我一遍;自我介绍完之后他问了一下简历上的项目,主要问了在先进院做的网盘,让我讲讲它的结构,我也没讲太清楚,因为后台的存储框架我的确不是很清楚。
之后就问了一些基础的数据结构题和算法题,第一题:请说一下数组,链表,以及哈希表的区别,以及在使用的过程中主要考虑哪些因素,这里表现得不好的是哈希,我说如果存储的数据结构是键值对,可以考虑使用这个,但是他又问了哈希冲突怎么解决,我表示我不知道,因为的确不知道,还是基础不够牢靠;第二题:给你连续的2到10000这些数,无序的存在一个数组中,删掉它们中的一个,怎么快速的将这个数找出来,我回答的是首先将2到10000加起来,再将剩下的数全部加起来,两数相减,就得到了删掉的那个值;他没说好不好,就说那下一题,第三题:给你一个单向链表,怎么找到倒数第N个数,我最先想到的是先遍历一遍链表得到链表的长度,他说你那样就得遍历两遍,他提示我说你可以考虑两个指针,我就想到了,让第一个指针比第二个指针先走N步,这样当第一个指针到达链表尾的时候,第一个指针指向的位置就是我们要找的;可能我说出了他想要的答案,他说了一句,嗯,不错。并表示接下来的题目会难一点。结果接下来的题我真是答得不太好。
接下来是一道算法题:他说有一支股票,他的价值在每个时间点是一个值,比如从早上九点开始到下午三点,每个时间点对应一个股票价值,让我设计一个算法,找出最佳的买入时间和卖出时间,我想到用一个临时变量记录两个时间点之间股票价值的差值,循环比较得出最佳买入点和卖出点,这样我的时间复杂度是n!,他说这个题其实是线性的,也就是时间复杂度只有n。让我下来之后再去仔细想想。
最后一道题是一道设计题,他先问我面向对象的书籍有木有看过,显然这个肯定要说看过,于是我就说看过了,他说他会逐渐给我增加需求,让我设计系统,首先他给我的条件是设计一个电影院的售票系统,让我根据他现在给我的信息设计出哪些类,我就想到了电影可以作为一个类,还有播放厅类等,然后他又说,我们要求电影票要根据活动来调整价格,比如今天是38节,我要求所有电影都打折,或者用户可以办理会员卡,金卡等给打不同的折扣和优惠,我就很2的说那就需要再加一个用户类用来存储用户的信息,他让我把整个过程关联起来,不得不承认设计方面真的是需要提高,后来他可能看我实在是想不到更好的了,他就说你可以把打折这个过程抽象为一个类,然后每一次活动它其实只是算账的策略不一样而已,所以每次有不同的活动就加一个不同的策略就行了,然后他让我下来之后研究一下设计模式里的行为模式,怎么把行为抽象为一个接口。让我下来之后好好想想。
最后就问了一些乱七八糟的问题,问我毕业后有什么规划,我说准备搞两年研发,他就说女孩子怎么喜欢天天对着电脑啊,说他们公司有很多营销代表,难道他想让我去做销售?总之态度非常好,虽然题目答得很一般,不过整个面试过程还是相当的轻松加愉快。不管结果如何,总之也算是有收获啦。。。。
1轮面试:电话面试
面试感受:不好;面试难度:非常困难;面试来源:社会招聘
共1个问题,0条回答
Q:根据他现在给我的信息设计出哪些