腾讯 TEG 部门 c++ 暑期提前批面经
1.11 投递
1.12 约面
1.13 一面
自我介绍,简历介绍,一些基础的 cpp 相关八股,比如:std::map 底层结构(不需要说原理,回红黑树就够了)和插入删除复杂度。
两个很简单的手撕:
1)二叉搜索树中至多输出 k 个大于 target 值的节点值,也就是先找最小的大于 target 的节点,然后依次输出至多 k 个节点值。2)二分。
手撕很简单,但是第一个提醒了好几次,运气好给过。
1.17 二面
纯拷打,三个手撕。
1)一个链表,输出每个节点后第一个大于该节点的节点值。leetcode 503,不过要求是只能正序遍历一遍链表,O(N)。单调栈做。
2)同上题,不过要求输出节点后大于该节点的最大值。要求同上。刚开始只会逆序单调栈,但是面试官提醒用递归的调用栈模拟。
3)手写布隆过滤器。因为没写过,且状态很差了,被提醒多次结果不对。
面试官评价:基础不行,代码风格不行,建议多看优美的代码。
个人感觉:因为每个题都要求自己写完善的测试,且刚开始用 std::vector 模拟链表,但是被告知要自己构造真正的单链表,花费时间过长,三个题大概 100mins。
自己太菜了三个简单手撕写了 100 分钟,面试官后面都不想面了。