面试复盘 | 字节番茄小说三面(offer审批中)
流程:9.12笔试 → 9.14约面 → 9.24一面 → 9.29二面 → 10.9三面 → 10.12内推进展从“面试状态核定”变成了“面试已完成”
今天内推人问了hr,说状态是“offer审批中”
发个面经攒人品,许愿意向
是我面过的最不常规的一场,没问多少八股,面完给我整累麻了,结束了一看录音忘了开
面试时间推迟了一小时,面试官连着国庆请假了,当天刚回北京,在家里面试的
1. 自我介绍
2. 来个算法吧(真的吗上来就是算法吗,头一回遇到没有接着自我介绍问项目的面试官)
输入为两行,第一行:[[3,18], [5, 12], [18, 6]...] 表示3到18有边,5到12有边...边是双向的(就是想说无向图),具有传递性(就是表示[3, 18, 6]在一个连通分量里)
第二行:[[3, 6], [3, 12]...] 就是问两点是否在同一个连通分量里
输出:[true, false, ...]
思路:并查集,判断两个点是否在同一个连通分量中,核心方法是并查集中的 public boolean isConnected(int x, int y),返回x点和y点是否在同一个连通分量中
有个词典["c", "ch", "chi", "hi"...],给你一个list,里面的元素是字符串,判断能否通过合理的切分使得字符串能切分成词典中的元素,每个元素可以使用的次数无限,返回是否能切分成功,能则为true,不能为false。
比如:["cchic","chihhi"... ] 输出 [true, false]
(看完题目,大概说了一下思路,然后尝试让面试官换题。
面试官:为什么要换题呀,你做做试试,我要是换题肯定更难
我:好的(苦笑))
思路:动态规划,dp[i]为到字符ch[i]为止是否能成功切分,对于dp[i],如果切分出来的字符串ch[j...i]词典中有,并且dp[j-1]为true,则说明能够成功切分,dp[i]为true
设计一个简单的评论系统,要求写出创建表和查询的sql
①评论包括一级评论和二级评论(即在一级评论下还可以评论)
②一级评论有热度值,热度值为该一级评论下二级评论的条数,二级评论无该属性
③查询方式有两种,一个是按时间排序,一个是按热度值排序,要求分页查询
分页查询的地方说了一下 limit 0, 50 和 limit 100000, 50的区别和优化方式
这个题答得一般,但是面试官说这个题本身就不容易,只是为了看设计思路
答:主要考虑了导师blabla...
(聊的时候提到了为什么没有问常规的基础问题,面试官说因为一二面问了很多,他就没再问)
(应该是因为我问了为啥不问八股,就给我来个八股意思一下,果断抓住机会从主从讲到哨兵再讲到cluster,还讲了如果master宕机了,哨兵模式和cluster模式分别怎么办,讲了一致性哈希等,该问题主要参考《Redis设计与实现》)
8. 时间差不多了,那我们今天就面到这里(没让反问,一度以为人没了)
#面试复盘##字节跳动##面经#