小米通信工程师 面试经历(2012年3月)

匿名网友 匿名网友 发布于: 2016-02-25 00:00:00
阅读 429 收藏 0 点赞 0 评论 0

整体感受:非常好!

细节:

我中午13:00就到,我面试的时间是14:30,HR把我安排到贵宾接待室,简约的装修风格让我感觉到是在书房,在这里你可以无线上网,可以喝想喝的饮料,可以看杂志,看技术书籍。我选择了边喝饮料边看技术书籍,很享受,让我有些紧张的心放松了许多,到了下午14:30,我开始面试,我被安排到一件单独的小屋。

这里有很大的落地窗,小屋里只有三个椅子和一张桌子,和很大的玻璃墙壁,首先进来了一个面试官,先翻阅我的简历,看到我简历上做的东西都比较硬,不过我碰到了硬茬,你什么牛就问你什么,由于我对自己做的东西都比较熟悉,顺利的过了这关。

接下来便考我算法:

1.构建一棵二叉树:比较顺利完成。

2.写出前、中、后序遍历:很顺利写完。

3.任选其中两种遍历恢复二叉树:只有后序加前序不可恢复。我选择了前序和中序。

4.用代码实现:我先描述完成整个思想,然后花了大约半个小时完成了。

面试官满意。接下来考了一个关于C++的,好久没用C++编程只回答完他的一问便说记不住了,此题便过去了。

  

然后是一个c语法的问题:char *a = "aa";char b[2] = "aa";求sizeof( a ) = ?, sizeof( b ) = ?,我回答是4,2.解释:a是地址大小为4字节,b在这里指求的是数组大小2字节。面试官满意。最后一个压轴题面试官估计能把我给搞死,结果他没能如愿。

 

等了十分钟,又有一个面试官进来。聊聊生活,开始发问,开始以一个实际的小项目来考:考的是社交网站的人与人的朋友圈问题。给出几个人和几个人的关系,考最后一共有几个关系圈?我答:方法一:利用无向图:邻接表和邻接矩阵。利用深度和广度遍历即可完成。时间复杂度O(N^2),方法二:利用森林,森林的遍历:前、中、后序遍历完成。时间复杂度:不易算出。比图稍好。面试官给予我的回答肯定能够完成。便叫我在O(N)时间复杂度完成。提示完成:利用集合。在他的提示下,我把集合的思想回答完成,接下来是写代码,我花了十五分钟左右完成了核心代码的编写,面试官说我编程底子好,我心里偷偷的乐。接下来考了一个脑筋急转弯之类的题,就不多说了,这个题我给出了答案同上面试官叫我不断的改进算法,最后完成。面试官满意的走了,叫我稍等。

后来HR叫我等信。一天后,HR电话通知:欢迎你加入小米。工程师发问:问我是否拿到其他公司的offer,我答:都被我拒了。这里有几项工作,随你选,喜欢做什么做什么。我对小米的人性化感到开心,我喜欢小米。

这是我的经验,希望能够给后来的同学有点提示:想进自己喜欢的公司,想进好一些的公司,请把基础知识学扎实,不要局限于一门语言,此处说的扎实是把核心课程学好:数据结构、操作系统、组成原理,c或者c++语言(这是很好的入门语言),各种原理课程,看五遍不多,编程天天都得编写。有用代码量要在毕业达到10万行以上。

满意的地方:

小米很人性化。

不满意的地方:

无,没有。

评论列表
文章目录