美图可谓厦门唯一一家相对大一点的互联网公司,晚上参加了宣讲会,从宣讲的视频来看,公司的文化我倒不是很认同,觉得玩心太重了,不知道技术氛围怎么样。我最关心的,技术在美图的待遇情况,看准网上说5,6000的,确定不是逗我吗。
笔试
从心里生出排斥感后,没想到被笔试小虐了一把。
还记得以下几题:
给定两个十六进制的数相减,求结果的十进制表现形式(不想算啊);
算法的空间复杂度指的是什么(一个算法在运行过程中临时占用存储空间大小的量度);
15000转/分钟的磁盘,求rotational latency time(旋转延迟用磁盘旋转一周所需时间的一半来表示。例如转速为5400转/分,则它的平均旋转延迟为 60 / 5400 * 0.5 = 0.0056s = 5.6ms);
函数指针数组 (应该是 .. int (*func[10])(int) 这样的吧);
给定一些程序,改错(有个错误当时没找出来:int main(int argc, char * argv) 这里第二个参数应该改为char ** argv或者char * argv[]啊,fuck,第二个参数是用来存放指向字符串参数的指针数组,每个元素指向一个参数);
给定一个有序数组和要查找的数,如果能找到则返回该数,找不到则返回最接近的数(二分);
给定一堆同事关系,求两个人之间是否为同事关系(我觉得是构图,然后并查集);
字符串压缩算法,如aabcZ!mmmmdf,要求使得压缩后尽量短,而且要能够解压缩还原,效率还要高(哈夫曼编码吧);
觉得笔试很不理想,但还是收到面试通知了,可能如宣讲会所说,这次要的实习量比较大吧,比较宽容,我就幸运地进入面试了。
一面
面试这天心情糟糕无比,上午的组会被所谓的导师当着学弟学妹们的面臭骂一顿,意思大概是我没能给他卖命,怎么不上天呢,草,然后又和专利老师撕逼,被质疑了方案有问题,哎,的确是有问题,还需要想想怎么解释。
哎,跑偏了,回到美图面试,公司充满了粉色,各种卡通满眼可见,另外,有个前台长的不错。
HR把我带到了“男神根据地”等待技术面试,我在拍照的时候刚好HR又过来了一趟,问我在拍什么,有点尴尬啊。技术面试官是个小哥,感觉也没比我大几岁的样子,他的风格是问到我不会为止,但是我没挨得住他几轮问就不行了。
他一上来就让我写段代码,有了上次滴滴的经验,我也变得淡定了。翻转链表,送分题啊,我快速撸完后以为搞定,结果他问请分析一下这段程序的时间复杂度和空间复杂度。尼玛,递归的时间复杂度怎么分析我是不会的,只好扯了一下空间复杂度,结果还没完,他接着问这段程序还可以怎么优化呢,我则告诉他我已经优化了,把原来没优化的想法也说了。
接着开始问基础,TCP凭借什么保障可靠传输,TCP主动提出断开链接后,被动方进入了什么状态,解释下Python的闭包,等等,还有很多,忘了,只记得这些了。
有些我会,有些我也不会,但是我的体会是,如果遇到不会的,或者含糊不清的,尽量能扯多少相关概念是多少,但是必须保证扯出来的是对的。比如上面问TCP断开链接的被动方进入什么状态,我是忘了术语,那么我就给他讲TCP断开链接的四次挥手,还有我记得的主动方进入TIME_WAIT状态,不要不会就说不会两字,人家想给你机会都给不了。
然后又是写代码,后序遍历二叉树,送分。然后,问如果有个文档,每行是一个字符串,要统计这个文档里每个字符串出现的次数,怎么做。我介绍了最基础最笨的利用map的做法,然后又重点介绍了基于字典树的做法,画图解释清楚,以为就差不多了,结果还是too young。他继续问,如果用字典树的做法,内存为2G,文档是10G,怎么办。给我限定字符串的max长度,实际上也就是树的层高,计算存储空间,再限定字符串的构成字符集,再计算存储空间,这考到计算机组成原理和操作系统去了,直到我不会为止,给跪。
接着他又翻出我笔试的卷子,挑了几道我当时的错题,重新考我,幸亏我笔试结束回去没有闲着。考了C的指针用法(我还是不太会,太绕了),还有strncmp的用法,内存对齐,等等。
最后问我平常是怎么提高自己技术的,都看过哪些技术书籍啊什么的,终于结束了。
HR面
HR面就没有再问技术了,聊聊天,谈谈人生。HR让我评价一下技术面试官,问我如果在美图和这样的面试官一起工作,会不会给自己帮助,那当然回答会咯,开始扯咯。美图的总部在厦门,所以我是福建人的身份大概加分不少,HR开始和我扯家乡等等。再后来又问了我的本科排名和硕士排名什么的,最后让我填表了。临走的时候问我第一意向是厦门吧,刚聊回家聊的那么开心,结果我说还是北京吧,她有点惊讶,可能会觉得我有点不靠谱,如果最终没有拿到offer的话,可能最后关头的表现有些扣分了,不过没办法,我也是实话实说,希望先在北京一两年,最后肯定是回离家近的地方。HR让我回去等消息,客套地说希望有机会和我一起共事,就送我走了。
网友评论