一面
简单寒暄之后直接做题:Leetcode 516. 最长回文子序列。这是我人生第一次面试,而且当时还没怎么做过DP的题,自己有大概的想法但是没敢和面试官说(大家千万别学我,有思路就大胆说,错了面试官也会提示你的,拖着反而浪费时间)……随后面试官觉得思路没问题了就开始写代码,我偷懒就用递归top-down的解法,最后加memoization。结果,递归没问题,加上memoization的时候写错了😅😅😅。我太紧张找了半天还没看出来哪儿错了,最后还是面试官指出来的😅😅😅。
整场下来就这么一个问题面了一个小时多,感谢面试官的不挂之恩!
PS:个人认为,在面试这种时间紧张的环境下遇到自己不熟悉的DP题目可以优先用递归解法。因为递归解法可以分步实现:可以先写裸算法验证算法正确性,确认算法正确后再加memoization优化复杂度(不过加的时候要多加注意,如果像我一样加错了就尴尬了)。不过如果有自信能用bottom-up一步到位,那还是用bottom-up更好一些。
二面
开场聊了很久项目,面试官还问了我为什么这么喜欢Rust,我居然回答的磕磕绊绊🥲。然后聊了个场景设计题:打车软件中怎么合理配对乘客和司机,尽量减少司机的空载率。
然后聊算法题,$N \times N$矩阵,左上到右下有多少种走法。我说这个有数学解,但是我忘了怎么算了😅😅,还是在面试官提示下给了个计算公式。然后follow-up,如果有障碍的话有多少种走法。显而易见的入门dp题嘛,描述了一下算法流程之后白板写题。心想反正都是白板,干脆就用Rust写了😉,顺利过关。
时间线
- 8.9 提交申请
- 9.29 笔试
- 11.1 一面
- 11.4 二面
- 12.6 收到面试通过通知
- 12.21 联系HR安排入职事宜
- 1.17 入职
字节新加坡的HRBP实在太不靠谱了!!!从12.6收到面试通过的通知之后就和HR失联了,原本安排好在12.7下午电话告知我后续流程,结果直接咕咕咕了??随后Lark不读邮件不回,终于到了12.21才主动发邮件联系我???12.21原定安排1.3入职,结果因为碰上圣诞和新年,背调迟迟没有结果,一直拖到了1.17才顺利入职😅😅😅。