字节二面-搜索(挂)

1h15min
1、自我介绍
2、第五分钟开始就让写项目伪代码,边写边问
(1)你说你的计数表是单独设计的,你用伪代码写一下 sql 表,笔记表和计数表,怎么分开存储的?
(2)笔记服务怎么用 CompletableFuture 并发调用下游服务的?伪代码实现
(3)你设计的笔记里面,文本内容单独存储在 Cassandra ,为什么?那你笔记表里文本内容存储的什么
(4)你说文本存储在 MySQL 里面, MySQL 会把这种长文本单独存储在另一块区域,需要两次磁盘IO?那你存储在 Cassandra 里不也是两次磁盘IO吗,有什么区别?
(5)你说笔记表里文本内容存储的是 UUID,是 Cassandra 的 key,那为什么不用笔记 ID 作为 key?
(6)你笔记的点赞系统是怎么设计的?你的伪代码中怎么没有体现?(写个伪代码至于那么全吗
上面连问带写,差不多都40多分钟了,然后开始写题...
3、算法题
(1)股票买卖
(2)再计算一下最佳是哪一天买入,哪一天卖出,输出
#字节#
全部评论
伪代码写的差不多,答得也差不多,算法都A,最后挂。估计是有更牛逼的大佬了
点赞 回复 分享
发布于 05-24 10:43 河北

相关推荐

05-25 22:01
已编辑
东北大学 Java
字节搜索二面挂当天被捞1、自我介绍2、你提到了用户的关注与取关,你用户关系服务是怎么设计的?(定义了关注表与粉丝表,两个表内容一致)3、你怎么保证两个表内容一致的?(目前是通过事务保证的,后面其实还可以通过订阅 binlog 伪从来保证一致性)3、如果是大 V 的情况,你有考虑到吗,做了哪些处理应对这种高并发(Redis 缓存+二级缓存,冷热数据分离)4、分布式 ID 你都用来生成什么 ID 的?(笔记 ID,用户 ID,用户 ID 用的号段模式,笔记 ID 考虑到雪花算法自带的时间戳可以实现冷热数据分离,发布久远的笔记不缓存在 redis,后由于点赞系统采用咆哮位图高效判断,但咆哮位图基本只能存储 32 位,遂也改为号段模式生成,生成效率基本没差多少)5、那你说说点赞系统怎么设计的?为什么改为咆哮位图了?(先是采用 Set 数据结构判断,后因为满足高并发需求,Set 模式占用内存太多,又改用布隆过滤器实现,大大降低内存占用。但布隆过滤器在判断存在时存在误判,需要从数据库进行二次校验。后改用咆哮位图,既能高效判断点赞与否,内存占用也大大降低)6、那你讲一下咆哮位图的机制,为什么有你说的这些优点?7、MySQL 了解吧,你讲一下 MySQL 的索引(一顿吟唱)8、说一下聚簇索引和非聚簇索引的区别9、联合索引再说一下,如何定义联合索引最好?(设计成覆盖索引)10、联合索引的顺序重要吗?(顺便再说一下索引下推)11、算法1:二叉树展开为链表12、算法2:根据层序遍历建树反问
字节跳动一面1202人在聊 查看13道真题和解析
点赞 评论 收藏
分享
评论
3
5
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务