|
职位类型:技术 面试地点:北京 招聘公司:北京小米科技有限责任公司 之前有朋友约我去参加小米的校招笔试,但是我心里对小米的工作制度不是很喜欢,所以没有答应,但是后来一个之前认识我的HR联系我说我可以直接去面试,考虑后决定还是去一趟。 到了小米,宏源大厦的新办公地点。新办公室比较空,很多空位。前台领我到一个会议室,然后请来了一面的面试官。 首先bs一下打印我简历的那个人,我给您一个pdf简历的url,您不但不会直接打印,还费劲把内容粘贴出来弄得齐丑无比。 先随便聊了一下背景,让我写一个有序链表的归并。然后讨论一下n条直线可以把平面切多少份,然后再证明一下直线分割开的平面可以用两种颜色染色。呃,我数学归纳法不太玩的转,不过最终解释通了。随后,让写一个最大子段和,很快写出来了O(n)的,做过acm的都懂的。于是面试官让我再搞一个最大子段积,其实就是在子段和的基础和考虑一下正负就可以了,做过acm的都懂的。面试官琢磨了一会儿我的程序,然后说你这个中间过程会变成0的啊?于是我写了一组测试数据和中间过程,然后过了一会儿他表示没问题了。 然后让我等一会儿,他去请下一个面试官。什么?下一个啊,我以为今天就是一面呢。 二面的面试官先问了我面向对象的三个特性,勉强想起来俩,并通过项目中spider的实现解释了这三个特性。 然后开始bs我不懂B Tree,搞不清堆和栈,说不清线程和进程的区别,说我数据结构和操作系统都没学好。(汗,我承认操作系统确实没学过,但数据结构您是正好问到我的盲点了) 于是他让我写一段双向链表的相邻的奇偶Node调换顺序的程序,学过c的都会写的,细心就好。 然后跟我讨论一个支持*和?通配符的字符串匹配。我说这个递归一下就行了啊,面试官说不行,要避免递归,递归多了容易挂。我说那就用栈模拟递归,他这个还有更简单的办法。他说可以考虑只有*的情况,我想出了将pattern按* split开,然后逐段贪心匹配的方法。面试官又问考虑‘?’的情况,我说可以在每一段匹配的时候解决,但还是要递归,不然会丢解。他继续问:有没有不递归的方法。我想了一阵,说想不出来了。这时面试官嫣然一笑,说这是个陷阱,确实没有不递归的方法,我就考察一下你对自己的解决方案有没有信心。 他让我把只考虑*的情况写一份code,然后就出去了。10分钟后他回来看完code说很满意。 花絮:面试官看到我的U880,问,你这个是V880么,我说不是。他说他的手机是V880。我好好奇,你们不发小米手机的么? 然后让我等三面。等了好久进来一个30 的广东口音。聊了两句,发现他在对前面的面试做总结,感觉是个大boss。于是问了一下他负责哪个部门,他说他是小米的合伙人,叫KK。然后他问我是否实习,我说毕业前不会有机会实习了。他讲了他以前上学时实习,先去moto,觉得不爽,遂去ms,觉得爽,就留下来了(回来一查他曾是微软工程院首席工程师)。KK问我现在工作找的怎么样,面了几个公司。然后说现在还早,我跟你约下个月中旬,到时候你跟hr联系,咱们再谈一下。然后他送我出门上电梯,我想这就算通过了吧~ (责任编辑:晨鸿) |


