26届秋招字节后端二+三面速通面经详细版(附timeline)
timeline:
9.1投递半小时后约面,9.2一面当场通过约二面:26届秋招字节后端一面面经详细版
9.4二面当场通过约三面,9.8(隔了个周末)三面当场通过约HR面,9.10HR面;已oc等待意向
二面:
总结:实习35min+算法拷打两道,无八股,总时长一小时,且无反问
先自我介绍,重点讲解一下实习做的是什么业务
1.详细说一下你实习的整个系统,让我看看你对系统的理解
答:实习相关,略(这部分可以结合自己的实习内容,重点在于梳理整体的链路,你主要负责的服务位于系统上下游的位置,和哪些上下游进行交互,提供什么功能,为了完成什么业务)
2.你们系统如何保证分布式系统中的一致性?
答:适当扩展一些分布式一致性的八股,细说我们系统采用最终一致性的方案
3.你在实习中遇到最大的挑战是什么?
答:这个因人实习经历而异,但是每一轮面试基本都问了这个问题,需要重点关注
4.(面试官看了我简历上程序设计竞赛的奖项很感兴趣)你打这些比赛都会用到什么算法呀?
答:比较多的是动态规划、贪心、图论算法等;
5.图论算法具体是哪些?
答:深度优先遍历、广度优先遍历、迪杰斯特拉算法、弗洛伊德算法、拓扑排序等;
6.这个贪心算法和动态规划算法具体是什么能说一下嘛?
答:贪心的话,就是从局部最优解能推出整体问题的最优解,比如给一个数组,要求取k个数字和最大,每次取里面剩下的最大的,最后就能得出整个问题的最优解;而动态规划是把一个大的问题分割成若干个子问题,然后通过子问题可以递推出后面的状态,需要根据题目设计相应递推公式;
7.动态规划这个我没怎么听明白,你能再细说一下吗?
答:这个相关概念我也不太好答,要根据题目设计dp数组含义,写出递推公式,要不面试官您给我出题吧,我结合题目来讲,毕竟算法这种比较抽象,光讲概念不好理解;
8.算法题dp*2
(1)求一个整数数组最长交替子序列(相邻数先增再减或者反之)长度,应该是原创题;动态规划解题,设两个dp数组,一个表示以递增开始的最长交替子序列长度,另一个表示递减,再根据相邻数字判断大小推出状态转移方程(>,<,=三种情况),最后max(dp[n],dp2[n])即为答案
(2)类似于leetcode377,背包问题
9.问算法平时在哪刷题,题量如何?
答:主要在leetcode,codeforce、卡码网等,目前leetcode800题左右
三面:
总结:实习20min+算法两道,无八股,总时长四十min,且无反问
先自我介绍,重点讲解一下实习做的是什么业务
1.实习部分基本同上,因为业务域有重合,基本爽聊实习的业务
2.聊完业务没问八股,直接上算法*2
(1)leetcode1249,删除无效的括号,附加需要用两种方式输出,使用栈和一个标记是否有效的数组可完成;
(2)应该是原创题,一个数组包含0,1,2,3,要求用O(n)的时间复杂度完成排序;和leetcode75题有相似之处,75采用三指针,这里相比要多一个元素,所以我多添加了一个指针,四指针顺利完成答题;
HR面告知通过后,说可能后续交叉面或者意向,等消息中,许愿一个意向