字节跳动 | 推荐算法工程师面经

写在前面    

作者是研二的学弟,和号主一样都为非科班,但是实力不容小觑,顶住压力早早地在提前批收割了大厂的offer,可以说是「神仙学弟」了,方向为机器学习/数据挖掘/NLP,同时也对推荐系统具有强烈的兴趣,如下仅为部分面经,墙裂欢迎各互联网大佬来撩!

作者邮箱:[email protected]

字节跳动|推荐算法岗

7.2更新,晚上7点终于收到了意向书,不用再反复刷邮箱了~

  

6.23一面

面的是搜索团队的推荐算法岗位。

  • 上来先撕代码。1.给定一个数组,前面一部分已经排好序,后面一部分也排好序,将整个数组排序。2.将一个数分成给定的一些数的组合,给出所有这样的组合。比如将10分成[1,2,3],其中一种[1,1,1,1,1,1,1,1,1,1]。第二题出了太紧张了没写出来,写了个回溯但是有bug,面试官告诉我不要紧张,也不是都要求做出来。总体来讲面试官还是比较nice的。

  • 最后讲了下LSTM的细节,还有支持向量机的问题。

  • 反问。

6.23二面

介绍项目,涉及到了transformer也问了下。

  • 问了下树模型,GBDT等

  • 做了两个智力题。1. 43个石头,A,B轮流拿,每次可以拿1~3个,A先拿能否保证自己获胜?2. 1000盏灯开着,1000个人标号1~1000依次进入,每个人进去按一下自己标号倍数的开关,问最后哪些灯亮着?

  • 手撕代码:实现一维数组的maxpool。

  • 问了如何解决过拟合和dropout。

  • 反问。

7.2三面

原本二面过后就三面,但面试官有事情,推迟到今天三面。没想到三面被血虐啊啊啊啊……

  • 先来当头一棒,问熟悉什么语言,回答python,于是问python中list的底层怎么实现,没回答出来。

  • 问怎么实现一个字符串中找最小的包含所有不同字符的子串,回答用双指针,让证明双指针的正确性。

  • 概率题问比赛甲获胜概率0.6,乙获胜概率0.4,该选三局两胜还是五局三胜。再问不通过计算怎么判断?

  • 当n为一个趋近于无穷大的奇数时,甲乙获胜概率如何?

  • 根据用户的query,如何判断用户具有视频意图?

  • 介绍简历上的项目。

  • 没有反问环节。

总结

就字节的面试来说,总体感觉是非常看重编码能力,每轮面试都会要求做编程题,但有的只要说出思路。相比之前面过一些其他厂的实习,面试的手撕代码虽然没有达到笔试的难度,但也是有leetcode上偏难median的程度了。总结起来就是多刷题,还有自己的项目中用到的模型要非常熟悉,比如作者就被问到详解讲出LSTM的内部结构。最后祝大家面试顺利,一起加油!欢迎大家来交流~

你可能感兴趣的:(算法,编程语言,面试,推荐系统,字节跳动)