记一次离谱的被挂
反正自从去年春招实习第一次无准备面某大厂之后,每次字节的面试都是很奇怪的挂,上次笔试高分挂,这次又是一个奇怪的挂
本面经无意诋毁任何面试官和任何个人,陈述事实而已。我本人一直不以恶意揣测别人。
楼主海本大四,去年区域赛之前两天面了某大厂,然后屁都没准备,甚至就连惟一能拿出手的算法还栽在一道easy的链表题上了,就理所当然的被挂了
之后准备了准备陆陆续续拿到了几家大厂和外企的offer,春招的末尾非常幸运地被前组长拉去了企业微信,后来放弃考核继续读研去了
今年是提前回来了,然后找找日常实习打打零工赚赚钱积攒经验
一面面试官人挺和蔼的
首先上来说了说上一段实习,然后结合着实习内容问了问,这点其实还挺好的,面试官抛出了问题让我意识到了一个实习的时候没有注意到的事情,其实到这一步我还感觉受益良多
接下来是一堆简单八股,epoll,tcp/udp区别那一套,没什么难度
然后差不多就该写题了
然后本期最大槽点出现了
面试官给了个上台阶,一次能走1-2-3步,问走到n级台阶的方案数,直接秒了
然后我到这时候我还以为稳了,因为根据我的经验,如果前面聊得差不多,题就不会很难,是一个很好的信号
我直接给他写出来了常规和滚动数组优化的解法,并且和他说了做法思路,外加表示这道题可以用矩阵快速幂来优化,如果需要我可以手写,但长时间没写而且有点费时间,我可以讲讲原理
然后他就开始说我第一版常规解法第x行有问题,有bug。
然而我盯了半天都没发现bug,自己手动模拟了几组数据,没有任何问题。后来分析了下他指的地***得我代码初始化方式可能跟他的标准解法有略微出入,第三级台阶这个状态初不初始化都可以被从前三个状态推出来,这个问题其实和个人思维有关系,无伤大雅,沟通之后面试官默认之后我继续讲
然后继续看滚动数组优化的一版,我的做法是
用三个变量替代过去三个状态的值,然后递推
其中有一步是要三个变量加起来,他打断我说我这里有个《非-常数级别》的优化没做,问能不能优化掉?
我心想矩阵快速幂O(logn)你不让用,dp我O(n)写出来了,我在想难不成这种变种斐波那契数列你让我现场手推求和公式,或者说有介于二者中间的复杂度解法?
然后我懵逼了半天,他说我计算后三项求和的时候,其中有两项的表达结果两遍循环重复加了两次,让我优化掉,不能用第三个变量
我寻思这也不是所谓的非 常数级别优化啊?
我想了半天,也没想到怎么在不用第三个变量的情况下优化掉这玩意儿。他给了个解法是用一个变量记住剩下的两个变量,再开一个变量记录那个和。抛开这个优化是不是所谓的非 常数级别优化不说,你开两个变量记录,难道就没有成本么?而且他显然忽略了一个问题,那就是这个过程是在每一次计算的时候都会发生的,也就是说无论用什么方法,无论这个问题是不是常数级别的优化,你最后能节省的也就是常数时间的计算表达式,我之前实习的mentor宁可我写的复杂一点,也不能冒着同事维护出岔子的风险去简写,服务器该怎么优化还是怎么优化,我不明白这个循环里多做一次加法,服务器难道就会立刻宕机么?
然后这事儿到这我感觉就不对味儿了
然后他就说了很多恭维我的话,总体意思是你的兴趣可能和投的岗位不符合(我有后台实习经验啊喂),面试官一说恭维的话,我大概就明白啥意思了,第二天果然被挂了
我想说,我不埋怨面试官,双方思维可能会有差异,比如编译器的循环展开在我们这些刷算法的人看来可能就是多此一举或者想不到有什么用。也可能他在向我传递快跑的信号。
但是这个明显就是从一开始明显就没打算要我,如果一开始没打算招人的话请慎重发起面试,或者说,至少不要以这样的方式挂掉别人,明明做对了,却以吹毛求疵的方式挂人
如果这是我的工作,进去以后会是什么样,我不敢想
当然不是否认所有的hr和面试官哈,每个地方都有让人愉快的事情和让人不快的事情,所以继续加油吧,目前又投了队友的部门,希望能够上岸
祝大家都有offer