您的位置:首页 > 职场人生

面试经历

2016-04-15 20:41 260 查看
昨天经历了第一次面试,是应聘头条的数据抓取岗位的实习生。从3月开始就很关注实习生招聘了,然后补各种知识、投简历了,在牛客网上看各种面经,做做题。我简历里除了竞赛外没啥东西==,没啥项目经历感觉有点亏啊。。大多数简历都石沉大海了。收到第一个HR的电话是滴滴的,问我什么时候能实习,我说得暑假,她说需要现在能实习的。。第二个也就是头条的了,很感谢头条能给我这次机会啊,于是就有了我昨天的第一次工作面试的机会,不过面试的时候真是有点紧张啊。

今日头条(数据抓取实习生):

面试官一来就让我说一下我的竞赛经历,不应该先自我介绍的么==。于是我就准备长篇大论跟他讲讲了,从大一开始。。。讲了没几句就被打断了,说,其实我只是想知道你在竞赛中的职责、任务是什么,担任什么角色。。然后我就说我主要在竞赛中做算法分析的,对于某个题目要用什么算法实现等等。。感觉没讲清楚。。接着就给我一个题目:在一个整形数组中找和等于k的两个数,问是否存在。电话那边的声音感觉好模糊,总是听不清楚。终于听明白后感觉这题很简单啊,用个二分就行了。我想慢慢来,所以跟他说两个for循环遍历找一下就可以啊。他问时间复杂度,我说O(n^2).他说这复杂度肯定不可以啊。于是我说先排序,然后遍历一遍,对于每个ai都二分查找k-ai是否存在。然后他说二分是针对整个区间还是怎么?我说是对于整个数组进行二分啊。他说这样会不会有什么边界情况出现,有没有什么问题?我想了想说应该没什么问题吧。。其实此时我的思维已经有点混了,感觉慌慌的。。于是面试官说加入k=4,数组只有一个元素2,那么你那样算不会有问题么。。啊,糟了,我怎么这个都没想到。。于是更慌了,想了想说其实只有这一种bug吧,只要用hash判断数出现过的次数就可以了,大于1才行。。啊啊啊,我tmd到底在说些什么啊,蠢b了。然后面试官正要说些什么,但此时我又想到了另一种解法,跟他说了下,于是面试官只好又跟着我来到了第三种解法。我说其实只要用hash记录每个数出现的次数,然后再遍历一遍数组,对于每个数ai都可以判断k-ai是否存在就可以了。然后他问我时间复杂度是多少,我说要看hash的时间复杂度是多少,于是他又问hash的时间复杂度是多少,我说如果将数字作为数组下标的话就是O(1)的,如果用hash函数的话应该就是O(log(n))的。他说为什么是O(log(n)),这是平均时间复杂度还是最坏的时间复杂度,我又有点懵了。。他又说hash的最坏时间复杂度是多少,我说如果最坏形成链表的话是O(n)的,他好像表示赞同,但还又问我那个O(log(n))是怎么回事。。实在有点懵了,没说出来,因为用多了C++里的map,听谁说map里的实现是log(n)的==

接下来面试官就说我简历上说学过python,那有没有做过什么pyhon的项目。。我说我写过爬虫登录==,哎,我都不好意思说。。然后他问是那个网站,我说CSDN。他又问登录名以及密码是否有加密,我说没有,我还在想这个为啥要加密啊。。直接post过去就行了啊。。接着又问我HTTP传输的包的内容是什么,,我又懵了一下,半天才说好像有个HEADER,里面有个代理什么的,还有一个反盗链什么的。于是他问我反盗链是什么,讲一下。这里我讲得结结巴巴,本来感觉挺理解的东西,但一讲就讲不清楚,好郁闷==。接着又问我还有什么项目没,我说我做过一个小游戏。他说用什么语言写的,我说用Java,然后他就没问了。最后又给了我一道算法题:一个关键字带有一个生命周期,给你n个这样的关键字,在接下来的每个时间点中又会新加入一个关键字,让你接下来每个时间点找出有没有生命周期已经结束了的关键字。比如一开始有生命周期20s,30s的两个关键字,每次他们都要减少1s时间的生命,在20s时第一个关键字要过期了,在30s时第二个关键字要过期了。一开始我想只要用优先队列就行了,但由于中间会实时插入一些关键字,这样的话我只能每次都遍历所有关键字,然后它们的生命周期时间减一。时间复杂度太高。一开始没想出来后面就完全没法静下来想了。。面试官提示可以将它们转化为相对的时间就可以了,但我还是没法冷静想了,想了几分钟还是不行。。但我感觉应该不难的啊,只是我太紧张了==。哎,最终就这样匆匆结束了,40分钟不到。他也没问我需要问什么,感觉要挂了,的确下午就收到邮件把我拒了。

总结:

第一次面试,还是有点紧张,没办法。。一开始的那个简单算法题我居然还没想好,二分的话只要对ai后面的数进行二分就可以了。。还有我对于面试官的问题不总是答的那么直接,经常会扯点其他的,不够简便,不够清晰。。对于不是很清楚的东西就不要提,为难自己。。最后的那个算法题今天早上想了一下就想出来了,只要设置一个初始的计时器,每次加一。对于新加入进来的关键字,将它的生命周期的时间加上当前的计时器时间作为新的生命周期插入进去就行了,当然也需要优先队列(堆)维护。在面试过程中我觉得勉强还行,但面试完后仔细一想发现自己其实答得很烂。。在项目以及各种知识点方面不行,于是当他最后又问我一个算法题时就是想看我这方面,也是唯一的方面有没有特别强,以掩盖前面的弱项。但最后没有答出来,肯定就没希望了。感觉在答思维题这方面需要很快能想到,一下想不到
后面就很难再想清楚了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: