字节跳动 后端面经

今天刚过的二面,下周五三面写个面经攒攒人品

=======================================
一面
上来先自我介绍,问了项目职责的一些问题。对于自学的电商秒杀项目问了些业务逻辑实现的问题。
1. TCP/UDP的区别,答了连接可靠新和报文的冗余度。又问了下应用场景
2. 问了Java的垃圾回收器,介绍了串行和CMS然后说可以了
3. 问了下MySQL的隔离级别,回答的时候特别引导了下MVCC,下个问题果然就是MVCC的实现。从头到尾介绍一遍
算法
1. 二叉树的Z字形打印,经典老问题。没有让用输入输出,自己写TreeNode然后建个树。测试通过
2. 还有时间,下一题。一个图里面检测有没有环,开始看成链表了想快慢指针,提醒之后直接DFS回溯+set判断。基本边写边说思路,面试官有疑问解释了下,最后认可了方案。
反问环节
1. 面试评价:不方便透露,等下要梳理一下
2. 业务:音乐部门,做海外那个啥APP的
3. 使用技术栈:golang(难怪感觉java的部分他也不怎么清除),微服务+云

======================================
二面
首先自我介绍,因为我是通信专业的所以问了下通信项目做的哪一个网络层次。我回答是物理层的,以此为开端开始继续
1. 物理层的协议有些啥,因为做移动通信就举了一些3GPP标准和IEEE协议
2. 传输层主要职责
3. 传输层有没有IP地址参与,这个答的不好,似乎校验和那块需要IP伪首部
4. 看项目有用Redis和SpringBoot,掌握程度如何?不敢说掌握很好,只能举一下我知道哪些东西,什么单线程模型、持久化、主从同步、读写分离、SpringBoot的自动装配啥的
5. 那就聊聊Redis的线程模型,说了Reactor模型和相关的知识,扯到了底层的实现
6. 再问一个问题吧,进程之间能不能共享逻辑和物理地址,当然可能有相同的逻辑地址,共享物理地址我说可以共享内存资源,比如共享内存。感觉给自己挖坑了哈哈
7. 共享内存的使用场景,这真的不熟,只能扯用过Netty,知道调用epoll时候使用的是共享内存。Linux里有mmap和sendFile支持。
算法
在一个数中去掉8个数,使得剩下的数字最小。这个后来看在leetcode有原题https://leetcode-cn.com/problems/remove-k-digits/ 
我开始有点懵,说回溯dfs能做,但是复杂度很高。面试官让我算下复杂度,实际就是穷举所有可能,用排列组合算下是O(n!)的复杂度
临时加问,和O(2^n)复杂度比哪个高,想一想就行了。
最后我自己摸出来一个O(n)的复杂度的方法,说完以后面试官觉得如果不是去掉8个而是k个就变成O(kn)了,同意,面试官表示小火汁回去再想想最优解

然后看还有时间,就来个智力题吧:如果你加入字节,每年涨薪20%,多少年后涨到2倍
我上来直接求log解出来,面试官表示小火汁你不讲武德。让我想程序怎么做。我就说遍历呗,数值又很小。然后加附加条件,不是求离散值的几年,而是2.34523这种年份。
答:因为(1.2)^n单调递增,那么找到一个i使得(1.2)^i < 2,再找一个j使得(1.2)^j > 2。然后开心二分法。相当于一种插值算法。面试官似乎挺惊讶,说可以。但是回去可以了解下能直接估出来的方法。

经典反问环节
我当时有点虚,问了下建议。结果反馈说我思路挺对的,建议是答题扩展别太多突出重点,最后又补了句我扩展多但是说的倒挺对的(笑)。
感觉总体上和一面很不一样,常有些神经刀的问题,还是挺有意思的一次面试。

#字节跳动实习面经##字节跳动##面试题目#
全部评论
这也太难了吧
点赞 回复 分享
发布于 2022-04-12 18:38
请问一面之后多久收到通过的邮件的呀
点赞 回复 分享
发布于 2022-04-02 19:59
最后过了吗
点赞 回复 分享
发布于 2022-03-25 00:30
第一问的图检测环是不是这题:https://leetcode-cn.com/problems/7LpjUW/,并查集
点赞 回复 分享
发布于 2022-03-22 14:13

相关推荐

05-06 15:29
东华大学 C++
1.&nbsp;​分布式订单ID生成?&nbsp;短时间高并发下如何保证唯一性?我先回答了雪花-like,&nbsp;上段实习中,&nbsp;我们项目的全局GUID生成器是我写的,&nbsp;考虑了短时间内大量产生的情况,&nbsp;向后借用,&nbsp;未考虑时钟回拨然后想起来当时和leader讨论,&nbsp;&nbsp;单独的GUID生成中心,&nbsp;分批向各个ds批发号段..&nbsp;或者是用tacplus的自增id,&nbsp;但是这样效率太低2.&nbsp;​CPU&nbsp;性能瓶颈分析使用&nbsp;prof&nbsp;工具监视热点函数的性能消耗3.&nbsp;上段实习工作内容?&nbsp;难点?&nbsp;&nbsp;&nbsp;&nbsp;背包/仓库/道具&nbsp;​重构模块追问​:&nbsp;&nbsp;&nbsp;&nbsp;在两周内重构1万行代码,如何保证代码质量?是否引入单元测试或自动化验证?&nbsp;&nbsp;&nbsp;&nbsp;10天完成15天任务,如何协调开发与测试资源?是否牺牲技术债?4.&nbsp;问了一点网络:&nbsp;网络通信与实时系统视频会议与代码共享的链路设计追问​:解释从你的设备到面试官屏幕的完整网络路径(如NAT穿透、协议选择)5.&nbsp;游戏服务器同步机制?&nbsp;和互联网开发的区别服务器作为权威状态源,定期向客户端广播游戏世界的完整或增量状态(如玩家位置、血量)电商无状态服务可通过REST&nbsp;API+RPC横向扩展,而游戏服务器需维护长连接和会话状态。6.&nbsp;系统设计&nbsp;分布式事务与最终一致性​游戏道具交易涉及多个系统(背包、仓库、邮件),如何设计分布式事务?对比电商订单支付+库存扣减。​回答方向​:​Saga模式​:将事务拆分为多个可补偿步骤(如“扣道具-发邮件-记录日志”,失败则回滚)。对比:电商更倾向异步消息队列​(如Kafka)实现最终一致性。7.&nbsp;游戏服务器宕机后如何快速恢复玩家状态?电商系统如何设计类似容灾机制?定时落DB+游戏整体运行在共享内存,&nbsp;方便resume7.&nbsp;游戏后端请求链路分析采用自定义的可靠UDP协议​(KCP),平衡延迟与可靠性.&nbsp;玩家操作(如移动、技能释放)需携带时间戳和操作序列号,用于服务端验证顺序,&nbsp;请求直达,&nbsp;客户端直接和服务器感觉面试内容很不&quot;八股&quot;,&nbsp;答得稀里糊涂的,&nbsp;上面的顺序不是面试提问顺序,&nbsp;想起来什么说什么,&nbsp;大家做个参考
查看11道真题和解析
点赞 评论 收藏
分享
快手的面经比较少,我3月份刚开就投递了,4.20多号才发offer,流程确实有点慢,感觉不是很缺人,hr说暑期实习5-8月去就行,估计人挺多的。base:杭州电商快手一面3.24:1、算法:LRU2、拷打实习和项目3、Redis的数据结构介绍一下?4、Redis的Hash相比之下做了哪些优化?(zipList、listpack、hashTable)5、Redis的跳表介绍一下?6、为什么Redis采用跳表而不是红黑树?为什么不是B+树?7、其他忘了,主要拷打实习项目和Redis这块,因为偏toC快手二面3.31:(20min)1、算法:反转二叉树,1min直接秒了2、实习相关(比如POI表内存了哪些字段)3、如何查询北京元中心附近3公里以内的POI?(用Redis的GEO计算经纬度来实现,georadius,后续问朋友说美团是用ES做POI的召回,能限制xx公里的POI)4、那Redis的georadius具体怎么实现的?时间不长,后续就在聊天了,聊之前快手的经历快手hr面4.15:1、介绍一下自己2、你这么多段实习,做什么的介绍一下?为什么选择快手电商?3、快手、小红书、字节的电商你有了解过吗?没了解,但是我讲了一下快手本地的商品和快手电商商品的区别。4、为什么选择杭州?5、快手、小红书实习之前的实习强度?6、是否知道电商这边的强度?(强度确实大~)7、你觉得自己业务、中台、大模型,你更喜欢做哪个?自己更擅长哪个?
查看16道真题和解析
点赞 评论 收藏
分享
评论
7
84
分享

创作者周榜

更多
牛客网
牛客企业服务