快手提前批2021 C++ 一面二面三面hr面(已意向书)
一面:
面试是在牛客网上的。
自我介绍。
问了几个项目相关的问题。
面试官说我们这边挺重视代码能力的,于是就开始coding。
出了三道题,写完一道才出下一道。
1. 字符串中数字位置逆序,比如 a132bcd456efg,逆序后应该是 a654bcd231efg。
2. 二叉树最小层数,需要递归非递归两种方式
3. 多线程轮流打印 AB,需要先打印 A,再打印 B
代码写完时间就差不多一个小时了,然后就结束了,面试官叫我不要走一会儿有二面。
二面:
二面面试官上来就问我简历里面的项目,问了大概二十分钟,然后继续coding
1. 给一棵二叉树,返回最大和,唯一的约束就是不能访问相邻的节点(其实就是leetcode 337. 打家劫舍 III)
我在写这完代码后面试官说写一个testcase测一下,我又写了使用包含了空节点的前序遍历的二叉树反序列化,然后第一次跑结果不对,我怀疑二叉树构建的有问题,于是我又写了个二叉树的层次遍历,然后发现是前序遍历漏了个节点,加上去就好了。
2. 写一个LRU cache 因为我第一次面字节的时候没写出来这个,所以回去写了好几遍,所以印象深刻,很快就写出来了。面试官说看你代码能力还可以,就不用写测试用例了。二面结束。
之后很快就约了三面。
快手好像十分看重编程能力,两个面试硬是一点基础都没问,除了问项目就是在写代码。
更新: 三面是第二天下午六点。持续大概一个小时。
前段是面试官问了一下我想做什么方向,跟我介绍了下c++在服务端和客户端的应用,说了一下服务端现在的发展状况,介绍了一下他所在的部门。大概十几分钟。
然后就是一道智力题,掰巧克力,一块M*N的巧克力,要掰成1*1的巧克力最少需要掰几次,一次只能掰一块整块的巧克力。这道题我没思路,面试官屡次提示,最后在几乎已经把答案讲给我听的情况下我做出来了(其实式子我已经写了出来,但是没法证明,大部分时间都在想怎么证明)
更新:hr面是在三面后的第二天中午。
大概十五分钟,问了想做客户端还是服务端,问了现在还有几家在面试,拿了多少个offer,问了下期望薪资,问了下心目中的互联网大厂和对快手的的看法,问了下对前面面试官的看法,想选谁当mentor。问了下深圳和北京更偏向于哪里。说要过一段时间将大家的情况综合一下才能有结果。目测又是一段漫长的等待。
另外,快手的三次技术面试好像一道基础题都没问。
求offer
更新:8月18号offer call hr加了微信,说这几天发意向书
更新:8月19号发了意向书 撒花~#面经##快手##校招##C++工程师#