龙空技术网

字节跳动 算法全四面 详细面经 已拿意向书!(转载)

爱音乐的程序员小新人 509

前言:

今天同学们对“c语言字节算法”大致比较重视,咱们都需要了解一些“c语言字节算法”的相关资讯。那么小编在网上收集了一些关于“c语言字节算法””的相关文章,希望各位老铁们能喜欢,各位老铁们一起来了解一下吧!

历经一个月,四次面试,终于拿到了字节跳动的算法岗录取意向书,在这里记录一下面试经历。

个人情况

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

一面

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

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

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

二面

3.16进行了二面,二面感觉比一面严格了很多。

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

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

三面

3.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,感觉一面主要还是在问项目,算法就问了一道题,发挥一般。面完之后一度以为挂了,不过还好在第二天就接到了二面的电话,HR说一面面试官评价很好???

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

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

四面大致持续了40min,感觉三面和四面主要还是和具体业务场景结合的比较深入。 总结 四面后,又是焦虑的等待,还好过了四天,等到了录取意向书,在上海的搜索团队,就是不知道是不是SP。 这几场面试下来,感觉算法真的是基础吧,算法答不上来就比较危险了。其次要对自己的项目和论文有深入的了解,对机器学习模型要有自己的理解,可以跟具体业务场景结合。

作者:Myname

原文:

标签: #c语言字节算法