激动难以入眠-记录一个非科班算法四战头条面试之路

本人本科信管金融双学位,研究生理学专业。算法全凭研究生阶段自学。有M厂一年实习经历。
从研究生入学到现在,四战头条,前三次均以失败告终,第四次幸运的拿到了offer意向书,这里记录一下我的四次面试经历。希望对你有所帮助。

第一次(2017.05)- 爬虫实习生

那时自己刚在一家私募公司写了两个月爬虫,但从未经历过大厂的面试,满怀信心却被现实浇了一盆冷水。那时的我,甚至连栈都不会用。
面经如下:
1、tfidf的原理是什么,请写出计算公式
2、去除字符串中连续的ac 和 b,比如aaccd,去除之后就是d,因为去除中间的ac后,剩下acd,则再去除ac,剩下d。
这道题当时完全没有考虑到用栈来解决,写了一个递归的很麻烦的办法,结果可想而知啦。
用栈很好解决啦,遇到一个c,判断栈顶是不是a,如果是a,则栈顶元素出栈,如果遇到b,则不做任何操作,如果遇到其他情况,将元素压入栈顶。
3、将一个字符串变为数字,这其实考察的是python内部str转int的知识,可以通过看源码了解内部的实现机理。

第二次(2017.07)- 算法实习生

距离第一次面试隔了两个月,期间在一家游戏公司实习,但感觉就是上了两个月没效率的自习,期间刷了两百道leetcode简单题和中等题。
面试经验:

1、LDA的推导
2、常见的分类算法有哪些?
3、SVM的推导
4、SVM如何选择核函数?

知乎帖子:https://www.zhihu.com/question/21883548

5、LR的推导
6、LR的缺点


这次还没等考数据结构题,几道基础的机器学习问题就把我难倒了。也正因为这次面试,我放弃了已经到手的融360实习offer,在实验室钻研了近一个月的机器学习理论。正是这一个月的学习,我拿到了美团、猫眼、渡鸦的实习机会,并最终选择了美团。



第三次(2018.04)- 算法暑期实习生

此时的我已经在M实习了八个多月了,感觉自己机器学习知识也有了一定的积累,也顺利通过了头条的笔试。这一次,我终于突破了头条的第一轮面试,可最终的结果,还是失败。
面试经验:

一面:
遇到了一个搞图像算法的面试官,跟我的方向不太符合,所以没有问太多问题。总体来说比较轻松
1、CNN的原理简单说一下。
2、SVM的原理。
3、链表实现加法,由于给出的链表已经是按数位逆置的了,所以比较简单。

二面:
考了很多知识,涉及到爬虫,计算机网络,操作系统,手写代码推导,数据结构题,java基础知识,算法原理等等

1、LDA的原理
2、极大似然的原理
3、LR的推导,损失函数,梯度下降过程
4、操作系统的LRU
5、浏览网页的流程,涉及什么链路协议之类的
https://blog.csdn.net/qq_26460507/article/details/78035933
6、Map和HashMap的区别
HashMap:hash+链表+红黑树
红黑树:https://www.jianshu.com/p/0b68b992f688
7、如何对反爬虫机制进行破解
8、手写推导FM,并说出FM和FFM的时间复杂度
7、判断一棵二叉树是不是二叉搜索树
8、将一棵二叉搜索树转换成双向链表(用递归写)
https://blog.csdn.net/zengzhen_csdn/article/details/51198530
9、L1和L2的区别,以及各自的使用场景
10、为什么梯度是函数变化最快的方向
https://zhuanlan.zhihu.com/p/24913912
11、tfidf的原理
12、操作系统中的动态链接和静态链接

13、数据库的一道底层原理题,好像是存储吧,记不清了,反正不知道。


没什么脾气,就算机器学习都推导出来了,但是计算机网络、操作系统早就忘的一干二净。

第四次(2018.08)- 秋招算法应届生

到了真正的秋招,用了同学的白金内推码,直通面试。
面试经验:

一面:
1、介绍项目
2、强化学习PG的推导
3、强化学习DQN,DDQN,AC,DDPG的区别

4、n个[0,n)的数,求每个数的出现次数(不能开辟额外空间)
这里关键是看清楚题意,n个数,然后是左闭右开的区间,也就是说每个数都不会大于等于n,那么思路就来了:如果我们给一个索引下的数不管加上多少个n,那么这个数对n取余的话,我们就能知道这个数原来是多少;另一方面,如果一个数出现一次,我们就在对应索引位置下的数加上n,那么每个数对应索引位置上的数对n取商的话,就是这个数出现的次数。这样就做到了没有开辟额外的空间。代码现场直接略过了。

5、K个有序数组,找一个长度最小的区间,在这个区间里至少包含每个数组各一个数。

分析:初始化带下为K的最小堆,K个数字是每个数组中的最小值,设置变量max记录k个数字中的最大值,删除堆顶元素,将原堆顶元素对应的数组中下一个元素加入到堆中,调整堆,并且记录当前区间范围为(max-min),重复执行直到某个数组所有值都被删除。

二面
1、介绍DQN的项目
2、数组的全排列(空间复杂度O(1))

3、两堆钞票,尽可能均分(利用背包问题的思想)

三面:

1、无向无环图中,最短路径的最大值(O(n^3)的解法)
这里考察的其实就是Floyd算法。哎,只可惜自己当时没有复习图的相关算法,完全不会写呀。

2、LSTM的公式

3、RNN为什么出现梯度消失

4、BPTT的推导。

三面结束,觉得自己这次肯定凉了,我问了面试官,为什么面试的内容跟我应聘的岗位基本没有关系,我面广告,全程都没有广告推荐相关的问题?得到的回答是:统招统分。
面试后的第三天,我问内推人,她那边的状态是已完成,并通过牛客得知这好像是已通过的状态,心中一顿狂喜。可是到了第二周的周五,hr说让我转岗,我同意了转岗,不过简历需要重新评估。本周四,收到了转岗的加面通知(心里凉透了,因为对于转岗的岗位,自己简直一无所知)。

不过人生总是充满惊喜,周五,hr加我微信说不需要面试了,要跟我简单沟通下(心里想这下更没希望了,一定是面试官看我的简历跟转岗岗位毫不相关,直接就拒绝了)。下午接到hr的电话,说一面的面试官对我比较满意,愿意让我做算法的工作,不过秋招的岗位还是转岗的岗位。

我毫不犹豫的接受了,并很快收到了offer意向书。

四战头条,过程虽然苦涩,但结局还算美好。希望我的经历能够对大家伙有所帮助!





#字节跳动##面经##算法工程师##秋招##内推#
全部评论
牛逼牛逼!你为什么这么秀!
点赞 回复
分享
发布于 2018-09-02 00:09
楼主你这研究生读的是真爽啊,一直在实习,还能收获学位,人生赢家
点赞 回复
分享
发布于 2018-09-01 10:08
联想
校招火热招聘中
官网直投
楼主很强,大佬,而且我真的好羡慕楼主研究生还可以实习一年。。。我们导师实习一个月都被骂死
点赞 回复
分享
发布于 2018-09-01 10:26
大佬,可以私信问你几个问题吗?
点赞 回复
分享
发布于 2018-09-06 10:28
老哥祝贺~
点赞 回复
分享
发布于 2018-09-01 06:56
恭喜恭喜
点赞 回复
分享
发布于 2018-09-01 07:10
所以说大佬终究是大佬
点赞 回复
分享
发布于 2018-09-01 07:26
恭喜
点赞 回复
分享
发布于 2018-09-01 07:36
秋招岗位还是转岗的岗位是什么意思。。。
点赞 回复
分享
发布于 2018-09-01 07:44
恭喜恭喜
点赞 回复
分享
发布于 2018-09-01 08:17
Dqn的项目?楼主是用强化学习做推荐吗?
点赞 回复
分享
发布于 2018-09-01 08:21
刚啊
点赞 回复
分享
发布于 2018-09-01 08:46
恭喜恭喜!蹭蹭喜气!疯狂吸欧气!啊啊啊啊啊大佬的名字!我要疯狂吸
点赞 回复
分享
发布于 2018-09-01 08:51
恭喜恭喜
点赞 回复
分享
发布于 2018-09-01 08:53
楼主几号面试的?
点赞 回复
分享
发布于 2018-09-01 10:21
恭喜!
点赞 回复
分享
发布于 2018-09-01 16:16
你这实习一年真的骚。。。
点赞 回复
分享
发布于 2018-09-01 16:18
生理学?这么厉害吗?
点赞 回复
分享
发布于 2018-09-01 17:01
感觉算法题略难啊
点赞 回复
分享
发布于 2018-09-01 23:53
n个[0,n)的数,求每个数的出现次数 这个题的思路要怎么实现啊?感觉还是要开辟空间啊。不然时间复杂度至少要 O(N^2)啊
点赞 回复
分享
发布于 2018-09-02 21:26

相关推荐

21 211 评论
分享
牛客网
牛客企业服务