【字节跳动】C++岗-头条实习三面面筋

笔者三月笔试完后 约在了某天星期六一口气完成头条面试流程

面完可真是头冷。

从上午十点面到十二点半,肚子有点饿(没吃早饭)

一面 :

1.先来个自我介绍吧
2.数据库相关
问:数据库会吗
答:正在学,不太了解
问:redis了解吗
答:不了解。。。
3.算法相关
问:你说你平时喜欢做些算法题,那你说说哪道题让你印象深刻
答:说了个https://leetcode-cn.com/problems/first-missing-positive/
4.C++相关
问:数组和指针有啥区别
答:(省略三百字)
问:指针和引用的区别
答:(省略三百子)
问:C++对象内存模型
答:(省略五百字)
问:new和malloc的区别
答:(心里:不能来点有新意的吗(此乃谎言))
问:C++11有了解吗?
答:auto,nullptr(顺带说了相比于NULL的好处),智能指针(RAII原理),右值引用,move,forward,function,bind,新容器,范围for等等(感觉良好)
5.那我们码点代码吧~
问:用栈实现队列
答:双栈实现,约用时3分钟
问:求数组里连续子序列和最大值
答:(练习的原题)快速敲完,用时约2分钟
6.小子别走,等十多分钟二面..

二面:

1.先来个自我介绍吧~
2.数据库相关
问:数据库会吗
答:正在学,不太了解
问:redis了解吗
答:不了解。。。(您是复读机吗??)
3.问项目
问:断线续传的实现
答:if-range,range,Etag。。。
问:不加锁能让任务队列线程安全吗
答:
问:https了解吗
答:sll,公钥,私钥,非对称加密
问:输入url后发生了啥
答:BALABALA。。。
问:GET和POST的区别
答:(都9102年了还有人问。。)BALABALA
4.看你前面敲的代码很不赖,让我们敲点设计类的代码吧~
问:用数组vector实现队列
答:队列有大小限制吗(有的话可以实现循环队列)
问:没有大小限制,你就实现一个类似STL的就行
答:(这就有点难办)我直接用了vector的erase(begin())作为pop()
问:你这pop时间复杂度是不是有点高?
答:(果然是个老狐狸)维护队列首尾指针,这样pop()效率O(1),但是会有空间浪费,同时内存会越用越大,所以前面空缺长度超过队列长度,就开始往前拷贝,缩减vector大小,这能保证顶多一倍的空间浪费,尽量少的时间成本。(感觉他较为满意)
5.小子别走,再等会,有三面,还是这个视频房间

三面:

1.先来个自我介绍吧~
2.数据库相关
问:数据库会吗
答:正在学,不太了解
问:redis了解吗
答:不了解。。。(确认无疑,复读机)
3.问项目 (内存池)
问:说说框架
答:BALABALA。。。
问:说说遇到的难点
答:TLS
问:说说你觉得不足的地方
答:有些地方调用了new,用了STL(底层仍用malloc),unordered_map在64位下应该用基数树来实现映射关系,g++应用_attribute,windows下应用hook来完全取代malloc等等(感觉良好)
问:malloc怎么实现的
答:BALABALA。。。
4.我看了你之前的代码,你很有想法,让我们敲点代码吧~
问:给你接口能获得与此地铁站相通的地铁站,怎么找到最短的路径到达目的地铁站?
答:BFS/DFS都可以
问:说说区别,你觉得哪个好
答:BALABALA。。我觉得BFS好,因为找得快(本次面试最大翻车点。。)
问:那你写写BFS的伪代码吧,用我给你的接口
答:(没写过BFS,相当后悔,应该说用DFS,理由:地图软件会同时显示多条路径,只不过最短/最快路径优先展示而已,BFS无法达成这样的功能,更大的原因是我写DFS是把好手,简直轻车熟路,就不该说什么BFS(后悔中。。。)(写了约十分钟后)我:面试官老师,咱能换一题吗,或者我用DFS写个给你看看?
问:(耐心指导若干时间后。。看我还是没写出来)我们时间有限,来不及换题了,这样吧,你还有什么要问的?
答:。。。

HR面:

1.恭喜你通过前面面试,你看啥时候能到岗:随时可以,多久都行~
2.我们的待遇你了解吗:了解,行业顶尖,没得挑~
3.加你微信,咱们慢慢聊:好的好的~

发表评论

后才能评论