简历是内推的,找到了川大的一位学姐,而后内推了简历。面试
过了几天,HR的电话打过来协商面试时间。一开始说的是下午两点,我想了想,好像有一节选修课,因而想调整再晚一点,因而调到了四点,不过这时间不仍是在上课吗……数组
因而果断上课上到一半,而后翘了出来,溜回寝室。在室友玩守望先锋的背景音乐下,进行了一面(微笑脸机器学习
其实这时候,我并不知道我面的是什么岗位的……函数
一面和小米同样,都是在一个代码分享平台上面写,就是面试官看得见你写的代码,你也看得见面试官写的是啥。学习
先让我自我介绍,而后我blablabla。网站
而后进入正题:排序
第一题:给你n个数,要求找到全部的三元集<i,j,k>,知足a[i]+a[j]+a[k]=S,要求复杂度n^2字符串
我作这道题的时候,一开始给了一堆乱七八糟的方法。(FFT什么的其实都想说出来,可是忍住了……hash
而后面试官提示了一下两个数的状况,发现好像能够直接O(n)的Two pointers就行了。随机数
而后我脑补了一下,因而给了个和two pointers毫无关系的n^2方法(暴力枚举+hash)……
而后在面试官的提示下,作出了n^2的two pointers。
这时候感受好像要go die了……
第二题:给25匹马,你有五个赛道,问你最少须要比赛多少场,才能获得前三的马。
我一开始没啥想法,因而答了个上限,(25-3)/2=11场,由于每场比赛能够淘汰两只马。
而后面试官提示了一下杨氏矩阵,而后看我好像仍是不太懂的样子,就给我讲了正解:
你建一个5*5矩阵,每一行,从左到右,从大到小排序。第一列,从大到小排序。
那么说构成我要求的这个矩阵,就须要6次比赛。
而后就能够淘汰掉第四列和第五列,第四行和第五行。
第一排只会剩下3匹马,第二排只会剩下2匹马,第三排只会剩下1匹马。
因为第一行第一列的马儿必须选,因此剩下五匹马比赛选出前二就完了。
因此最少比赛七次。
这时候,感受本身已经go die了。
第三题:给你一堆二维点,让你找到一个点,使得其余点到这个点的距离和最小。
这道题我终于会了,因而在面试官说完以前 ,就完成了抢答。
这道题是某年的校赛初赛题,把X轴和Y轴分开以后,分别取中点就完了。
第四题:
问:如何检测两篇新闻是同样的呀?
答:把新闻拿出来字符串匹配就行了嘛。
问:可是其中可能存在个别字符不同,其余的都同样的状况怎么办呀?
答:那就把新闻拆分红句子,抠下来,而后进行匹配吧。
问:有些句子,其实是表明着这个网站的特征的句子,如何把这些句子分辩出来呢?
答:翻一下以前这个网站的新闻,机器学习一下,看看那些句子出现的频次高。
问:哦,你会机器学习吗?
答:了解过,我知道K近邻。
问:解释一下。
答:KNN就是把一些做为样本,而后拿如今要检测的和那些样本作距离,取距离最小的那几个,而后里面啥最多,那么检测的这个就是啥。我以前作过那个数字识别,就是用这个搞的。
问:你说的好像不太清楚,我忘了,我回去查一查。
GG。
而后一面就说,你准备一下,赶忙面对二面吧。
这时,我室友正在欢乐的在守望先锋1600分鱼塘挣扎中。
开头仍是让我自我介绍,而后我把一面的自我介绍重复了一遍(x
而后进入正题:
第一题:
问:给你一个前缀,再给你一堆字符串,问你有多少个字符串包括这个前缀。
答:hash。
问:假设要求动态的屡次询问是否存在这个前缀呢?
答:把全部的字符串拿去建字典树,而后每次有前缀的时候,爬一爬就行了。
问:若是不是前缀呢,是问你是否存在这个子串呢?
答:hash?
问:这个好像不太行呀,你能够有充分的预处理时间哦?
答:那就把全部的字符串抠出来,好比把abc变成abc,bc,c三个字符串,而后作字典树?
问:好像能够?
答:恩,好像能够。
第二题:给你一个矩阵,从左导右是递增的,从上到下是递增的,让你找到里面是否存在一个k。
曾经曾某拿这道题考过我,而后我被他羞辱过,而后我就记住了这道题……
我诚实的答了我曾经作过这道题,而后证实了一下结论的正确性。
正解就是从右上角开始跑,若是k大于当前格子的数,就往下走,不然往左走,证实略。
第三题:
问:给你一个二叉树,求从根开始的最长路径。
答:好像dfs一下就行了?顺便记录一下路径长度。
问:要求输出路径。
答:第二次再dfs一下,若是到叶子节点的时候,是最长的话,就输出?
问:只用一次dfs。
答:好像不遍历完整棵树,是没法肯定最长路的?我感受得两次呀。
问:你能不能开个数组记录一下路径,而后更新呢?
答:好像能够呀。
GG
第四题:
问:给你一个随机数生成器,有p的几率输出0,(1-p)的几率输出1,p未知。要求用这个随机生成器作成50%输出0,50%输出1的生成器。
答:我在纸上画了画,好像让这个随机数生成器一开始正常输出,而后第二个周期1-rand()输出,这样就是一个平均的了。
问:你这个假设周期是1,那么输出了两个数,若是我只取第一个数,那么第一个数是不是50%几率输出的呢?
答:好像从两个数的角度来看,这两个数输出1的指望和输出0的指望个数相同,我以为好像是同样的。若是只看第一个数的话,他就不是。我感受这好像是个逻辑问题,我以为我逻辑好像不太好……
问:我想让你实现一个函数,而后这个函数的功能是50%几率输出0和1,你再想想。
抠了一下脑壳,而后想了10min……
答:输出四个数作,01和10的几率不同,01+10不等于11+00。00和11都是p(1-p),01是pp 10是(1-p)(1-p),而后00x11=01x10,根据这一,咱们能够乘法找对称关系。一共十六对,都能找到。
问:我懂了你的意思,你这样太麻烦了,假设你能够跳过一些东西呢?不必所有用。
答:那就11输出1,00输出0?01和10都跳过?
问:对。
而后面试官让我准备三面了。
让我自我介绍一下,因而我又重复了一遍( x
你有什么优势?
blablabla
你有什么缺点?
blablabla
你知道咱们干什么的吗?
不知道。
你知道你要干什么吗?
不知道。
那我给你讲一下,咱们是干blablabla……
而你会作blablablabla……
我以为你这种一张白纸的竞赛选手,仍是比较适合这里的。
而后三面就结束了。
而后我就以实习生的身份,混进百度之星出题组了。(x
我必定会好好出题的!你们记得去参加百度之星呀!
至于offer这边,就杳无音讯了,我觉得我被拒绝了,可是!
过了十几天,三面面试官打电话给我说了下百度如今HC不足的问题,你要来就只能四月以后来。
而我正好有校赛要去打,原本就打算最先也只能四月份以后过去。
因而达成共识。
因而愉快的就决定了四月份再去思考这件事儿去了。
因而我又开始在学校躺尸,过着给小朋友教书的快乐日子。