我是靠谱客的博主 默默胡萝卜,最近开发中收集的这篇文章主要介绍字节跳动 算法全四面 详细面经,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

点击上方“AI遇见机器学习”,选择“星标”公众号

重磅干货,第一时间送达

作者 | JustinNie 

编辑 | NewBeeNLP

整理|深度学习自然语言处理

面试锦囊之面经分享系列,持续更新中



个人情况

上海交通大学研究生,本科毕业于中国科学技术大学,目前专业是电子与通信工程,主要研究方向是文本匹配(NLP)。面试中的自我介绍第一句 hhh:)

一面

7月8日被字节跳动HR的电话捞起来了,直接进入了秋招模式,在接下来的一个月里,基本没有投递提前批,就专注参加了字节跳动的几次面试。

  1. 前半段主要都是在讲项目,面试官追问了一些项目细节的东西,以及做项目的心路历程。

  2. 然后就问了一道算法题,就是著名的「小兔的棋盘」,我后来查了一下,是什么卡特兰数。然而面试的时候我没听说过这一道题,不过还是磕磕绊绊地用DFS解出来了,面试官说可以了,也没让我继续用DP来解。哎,算法还是有点菜的。

总结:一面大约持续40min,感觉一面主要还是在问项目,算法就问了一道题,发挥一般。面完之后一度以为挂了,不过还好在第二天就接到了二面的电话,HR说一面面试官评价很好???

二面

7月16日进行了二面,二面感觉比一面严格了很多。

  1. 一开始我讲了论文的一些东西,然后面试官追问了非常多,有一些可能答得不太好,感觉对自己的项目也好,论文也好,一定要有自己深入的理解,不然容易被问住。

  2. 二面也是问了一道算法题,是寻找迷宫中的最短路径,迷宫中1表示有墙,路不通,0表示可以走。我脑子不知道怎么抽了,直接想用DFS来解,给面试官讲了一下思路。面试官提醒我,DFS和BFS你是怎么考虑用哪个的。然后我就明白了,应该用BFS,讲了一下BFS和DFS适用的场景。然后用BFS比较顺利的写出了程序。

总结:二面大约持续40min,感觉主要缺点还是在于对项目和论文的应用场景以及模型优缺点总结的不是很到位。二面后大概过了三天,等来了三面的电话。这时候还是挺紧张的,毕竟走到了最后一面,挂了就太划不来了。

三面

7月23日进行了三面,三面问的非常多,持续了90min。不过感觉三面面试官很善于引导,所以总体还回答的不错。

  1. 一开始就问了一道算法题,「LeetCode 76. Minimum Window Substring. Hard」。当然,O(mn)复杂度的算法非常好想,我也是第一时间讲了这个思路。面试官提醒我能不能再优化,我优化到了O(nlog(m)),就不知道怎么再优化了,面试官说可以了。最后查了一下,这道题我做过,不过做的时候也是直接用的O(mn)的算法,O(n)对我来说,还是不太好想到的。

  2. 概率题:考虑五局三胜和三局两胜的情况,哪种更公平之类的。这道题本身比较简单,直接算概率就可以。不过我扯得挺多的,自己分析了2k-1局k胜的情况,以及无数局是什么情况,结合了一下中心极限定理之类的。不过最后整个框架讲的不是太好,没有完整的圆回来。总体感觉这道题答得还可以。

  3. 结合具体场景的题目:A文件有m个专有名词,B文件有n个query,统计每个专有名词出现的次数。回答这个问题,主要其实就是考虑复杂度和分布式的知识,以及如何在query中查找专有名词(本身比较简单,考虑复杂度就不简单了)。不过我对分布式了解的不多,就只是自己手动分布式了一下。

  4. 结合实际问题问:如何判断用户查询Query的意图是否是视频,以及如何搭建整套模型。Emmmm,这里主要涉及到机器学习模型的构建,重点在于如何构造训练数据,利用点击率还是提醒了一下才想到的。对具体场景还是不太熟悉。还有考虑如何排序召回之类的事情,主要就是准确性和时效性的权衡。

  5. CNN,RNN,Tansformer分别如何编码文本,答得中规中矩吧。

  6. python的动态数组是如何实现的,说实话我不太清楚。就扯了一下字典是怎么实现的,然后借鉴字典的实现方式,自己臆想了一下动态数组是怎么实现的,好像还大体是对的。编程语言基础这一块比较弱了。

  7. 这一面问的挺多的,剩下有些问题我都忘了。

总结:总体这一面重点感觉在于如何在具体场景中选用合适的机器学习模型,如何构造训练数据。跟具体场景结合的能力还是挺重要的。最后问了一下面试官我的表现如何,面试官说非常满意。感觉稳了,然而没想到。。。看第四面。

四面

本来三面结束后,在焦急的等待结果,没想到突然北京的HR通知四面,跟我说大家一般都是三面或者四面。

  1. 讲了项目,主要深入问了项目中如何构造例的情况,以及几种不同的构造方式构造出来的要区别对待吗?这个自己之前确实没有认真想过,不过对项目比较熟悉,基本还是顺畅的聊下去了。

  2. 讲了一下论文,也是深入问了一个细节,这里就不展开了。

  3. 实际问题:在用户搜索场景中,如何在用户搜索的时候根据用户输入的字推荐要搜索的query,以及如何把错别字也正确推荐。主要是考虑输入与候选集合的匹配,用户画像的构建,考虑用户的历史搜索信息。结合具体业务的问题感觉主要考察思维发散,回答的感觉还可以,结合了StarSpace等Embedding的方式。

  4. 算法题:一个正整数数组,寻找连续区间使得和等于target,简单的用两个指针做出来了,不过让我证明一下解法的正确性,纠结了一会儿也算是证明出来了。然后如果里面有负数怎么做,很顺利的讲出来了。

总结:四面大致持续了40min,感觉三面和四面主要还是和具体业务场景结合的比较深入。

欢迎关注我们,看通俗干货

最后

以上就是默默胡萝卜为你收集整理的字节跳动 算法全四面 详细面经的全部内容,希望文章能够帮你解决字节跳动 算法全四面 详细面经所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部