算法渣说一下自己碰到的算法面试
本人本硕双末流985,女生。目前一直在找算法岗~据说写面经能有好运就跟大家分享啦~只是给大家说一下我都碰到过什么样的面试问题der~本科时只学习了上课的内容,相关的项目或者比赛统统都没做过。而且属于考完3分钟彻底忘光的脑子,所以基础并不是很好。
刚一上研究生时超级迷茫。。。觉得自己炒鸡不适合搞研究,因为觉得自己是属于一种工程型的人,告诉我功能我自己琢磨着实现可以,但是自己提出创新性的算法什么的就太难了(T ^ T)
至于为什么现在找算法呢,跟实验室有一定关系,实验室里的师兄师姐都是很厉害的人,我是被老师在学校的保内招收最后一个小时的时候收留的倒霉蛋儿,所以成绩什么的照师兄师姐们差了很多。师兄师姐不是去继续搞科研就是当了算法工程师,自己也就很想做。
另外经过一年半的论文冲刷,我以前的工程相关的东西全都忘光了。。。因为搞科研之后都是自己提出算法然后用C++写,以前的java更是忘得连类定义都忘了,所以考量了一下,彻底下决心找算法。
我目前只面过三家:陌陌,club factory,百度。
陌陌据说进了待定池,很久没收到信,肯定是拒了。
club factory给了offer,百度现在是口头的,希望走hr流程能顺利一些(祈祷)。
陌陌:
两面,脑袋被掏空。面陌陌的时候自己还没复习全,被问的只想撞墙
一面:
项目介绍,特别详细,详细到我项目中的树是怎么建的,每方面怎么考虑的。
算法:
1。分类和聚类哪个熟悉?答分类
2。分类算法中你用过哪个,详细介绍一下:结合项目介绍的
3。推荐算法熟悉么?:只知道基于内容的推荐和协同过滤。
4。协同过滤里面怎么细分?细分之后的算法举出几个?:基于用户的和基于内容的,用户的考察用户间相似性,基于内容的不知道。(这是自己瞎答的…)
5。你提到了关联规则, 关联规则具体你知道哪些算法?:Apriori和FP-Growth
6。这两个算法异同性?
7。k-means知道么,具体是怎么回事?:最大化簇间距离,最小化簇内距离
8。距离使用的哪种距离,你知道哪种距离?自己用过的是欧式距离
操作系统:(是谁告诉我算法工程师不用问操作系统的!!!!银行家算法早忘光了好嘛!!!只记得这几个银行家很烦人了!!!)
银行家算法
死锁条件
计算机网络:(竟然还被问了网络。。。感觉自己只能一直说。。。对不起,这些事本科时学的,现在忘光了。。。但是面试官仿佛听不到一样一直往死里问我。。。T^T)
从上到下说出网络有哪些层,每层具体应用?
浏览器是哪一层的?
动态协议和静态协议有哪些?
各种协议……orz
数据结构:
1。最大子序列和:一串序列,找出和最大的子序列:用一个变量储存第i位之前最大的和,碰到新的数字进行相应的加减法, 一旦这个变量小于0就置为0。
2。平衡二叉树是怎么回事,介绍一下
3。链表中有环怎么找?两个指针
4。海量数据中找中位数(数据有100G,内存只有1G):利用外部排序确定,或者可以用两个堆
二面:
手写代码。
1、大数相加
string
A
="112233445566778899"
string
B
="998877665544332211"
模拟大数相加
string add(string A,string B)
{
}
我用了一个标志位表示后面是否有进位
2、文件里包含了大量URL,每行一个,其中有很多重复。编写一个方法,输出出现次数前5多的URL。
def findMostFrequentURLs(filename):
用快排找轴,然后只在左面部分里继续找轴。(部门老大说用MapReduce就行,但是我没接触过,后来自己看了一点,的确简单多了。。。)
Club Factory
一面:
项目从头到尾说。说的特别的细。问了很久
2. 你第二个项目是统计相关的对吧?那频率学派和贝叶斯学派什么区别?频率学派是上帝视角,认为频率是固定的,比如硬币均匀投掷之后正面概率为0.5,但贝叶斯学派是观察者的身份,会随着观察结果更新认知。
独立性和相关性的意义和区别?
分类算法了解么?具体说一下对分类算法的认识。
算法题1:找出所有的回文子串。因为是所有的,我想的是用栈,但是同时要记录栈顶的下一个元素是什么,因为abba和aba这种奇偶串都有可能出现。(但面试官意思还缺点东西,没有继续问了。后来一想我答的好拙劣
二叉树的广度优先遍历和深度优先遍历。
性格问题:
自己评价自己
别人怎么评价你的
聪明的人和努力的人你是哪一种
这里很推荐大家这个公司,我觉得面试官和hr都好暖,尤其是面试官在面完我之后大概有10分钟的时间,在给我讲我面试中的问题,我以后应该怎么避免,还有我的简历应该怎么改会更好一类的,还给我介绍了一下现在很火的一些技术,推荐我课余可以自己学一学,反正真的很温暖,hr姐姐甚至还关心我怎么租房子。特别感动!!!
百度:
我club和百度一天面的,脑容量爆炸。。。
1面:
开始项目介绍(超级细,面试官哪里没听懂就让你讲哪里)
那你主要做关联规则?那机器学习的算法了解哪些?答分类,那分类算法的认识谈一下。
手打算法题,two sum: 有一个无序数组,找出所有加和为sum的数值对。两个思路,用STL,或者用排序,然后一个指针指头,一个指胃,向中间移动,可以减少比较次数
字符串匹配算法都知道有哪些?朴素匹配和KMP,另外还知道一些字符串匹配自动机。
那你随便手打一个字符串匹配算法
你这个统计的项目是怎么回事?
手写dijstra…这个时候我就要疯了。。。。。。。。。。。。。。
隔了十分钟二面
2面:
介绍项目
围绕着细节问题问了很久很久
手打层次打印二叉树:用两个队列
又问项目
手打:有原始序列1,-1,2,-3,4,6,
找出最长递增序列1,2,4,6 的长度: 先说用栈,肯定不行,有bug, 想了想说用递归,可以记住第i位前最长子序列和子序列最大值,但是还是有bug, 面试官提醒说递归思路对了,但细节不对,转化个方式就可以了。
智力题,不能用程序敲,自己想100的阶乘的末尾有多少个0:面试官陪着做的,先提取10的个数,加上100的零总共有11个,再找有多少个5,5,15,到95总共10个,但是25,50和75都包含两个5, 所以是11+10+3 = 24.
这就是我现在能回想起来的问题啦~
希望能涨涨人品(保佑)
希望大家都能找到心水的实习!啾咪!
转载自:https://www.nowcoder.com/discuss/68828
页:
[1]