文远知行-暑期实习-二面面经
最近面试少了点,补补面经,攒攒欧气。
这是3.28 号的一场面试。非常有意思,面试官一直在引导我回答,而且很有耐心。重点在于考察数据结构掌握。
数据结构相关
问:是否学过数据结构
答:学过
问:建堆的方式
答:给了个自顶向下建堆的方式
借此问:建堆时间复杂度?
答: O(n)
问:是怎么知道O(n)的?
答:死记硬背的
问:知道O(n)的建堆方式怎么做吗?
答:上述建堆方式应该是O(nlogn),O(n)的给忘了
面试官说忘了好啊(我:en???),那我来考考你,设计一个建堆方式,要求时间复杂度O(n),提示自底向上,向下调整堆?
答:卡了5分钟,一直在本子上推导,最后总算吭吭哧哧地说出来正确方式
面试官继续追问,你怎么保证时间复杂度为O(N),和你之前建堆有什么区别?能数学推导一下吗?
(我心里想:啊?还考数学)答:继续在本子上推导计算公式,用我仅剩的高中/高数的无穷级数知识推出来了。
面试官挺满意的,然后进入手撕
手撕环节
手撕题目:蛇形矩阵
题目不难,期间的边界条件判断面试官还帮我指出了一个错误。
手撕出来后,面试官让我调整打印间距,最后转到了如何判断数字的位数的问题上。
回答:先说了可以对10取余去判断
面试官问:还有别的方法吗?
回答:又说个使用lg()求解。
面试官追问:如果计算机只有ln()没有lg()怎么办?
回答:换底公式,但是具体怎么换忘了
总结
面试结束,总结下,竟然考了具体算法的推导,梦回算法导论,感觉还是很有意思的,全程无八股。
两天后hr联系我说面试通过
#面经#