小红书-后端开发-二面

公司名:小红书
岗位名:后端开发
面试部门:社区电商
面试轮次:二面
时间:30min

感觉面试官更注重项目,另外,这个B+树双向链表的优势,我说可以O(n)范围查询,面试官说B+树的中序遍历也是O(n),为什么要加个双向链表,多此一举。有无佬可以指点一下。

问题如下:
+ 自我介绍
+ 算法:反转链表的前半部分
+ mysql索引结构
+ 双向链表为什么更快,B+树的中序遍历时间复杂度也是O(n)啊
+ 最左前缀原则
+ 索引覆盖
+ SSO和OAuth2
+ 项目鉴权流程
+ 为什么rpc框架要使用thrift
+ 反问

#24届软开秋招面试经验大赏#
全部评论
b+数双向链表的优势是支持范围查询
6 回复 分享
发布于 2023-10-15 10:35 广东
范围查找当多个行记录不在同一个页时,可以直接通过指针去找下一个页的行记录,没有双向链表的话就又得从根节点去找或者回溯
2 回复 分享
发布于 2023-10-26 20:44 广东
B+树的双向链表优势在于它提供了一种更高效的方式来执行范围查询。虽然中序遍历也能够在O(n)时间内完成,但使用双向链表可以进一步提高范围查询的效率。这里有几点可以考虑: 减少重复遍历:在执行范围查询时,中序遍历B+树会导致重复访问节点,因为它会访问范围之外的节点。而双向链表可以只访问需要的节点,从而减少了重复遍历的开销。 降低I/O开销:B+树的节点通常存储在磁盘上,范围查询可能涉及大量的I/O操作。通过双向链表,可以将查询结果按顺序链接在一起,减少了磁盘访问的次数,从而降低了I/O开销。 提高缓存利用率:双向链表可以将范围查询结果缓存在内存中,而不必每次都从磁盘读取。这样可以更好地利用缓存,加快查询速度。 综上所述,虽然中序遍历B+树也可以完成范围查询,但是使用双向链表可以进一步提高查询效率,特别是在涉及大量范围查询或者需要频繁执行查询的情况下。
1 回复 分享
发布于 2024-03-12 19:19 安徽
我秋招面了很多公司,大家有兴趣的话可以去我的个人网站看看:http://space.eyescode.top/blog
1 回复 分享
发布于 2023-10-15 10:08 广东

相关推荐

11/20 火山引擎一面如何选择学习前端的学习前端过程中的感受学习过程中一些自己解决得比较有难度,比较有成就感的事页签为什么不用第三方库,和你自己做的区别是什么不同页签之间的 url 相同吗如何区分不同页签的(动态路由参数)说一下你对 websocket 的了解Websocket 如何拿到历史消息说一下文件在服务端被 ai 解析的大致流程,涉及到了哪些技术平时有用一些 ai 工具吗介绍一下双 token 无感刷新的原理请求出错时如何处理为什么不用单 token,直接延长 token 有效期不行吗为什么不全部存在 cookie 里Http 状态码有哪些500 系列一般代表什么如何处理跨域Cors 能设置哪些字段,能设置什么维度的跨域,除了域名还能设置什么什么是组合式 api,有什么好处虚拟 dom 是什么为什么一些框架的最新版在尝试去掉虚拟 dom实现一个 event 类Js 编码二叉树的实现与遍历Js 闭包应用手写11/27 火山引擎二面自我介绍接触前端时间,怎么学习的介绍一下项目,包含业务场景介绍一下技术难点介绍一下基于 websocket 的库的选择你提到了自己封装了 websocket 类,和这些库的区别是什么描述一下这个类主要的功能和 apiStomp 和 websocket 的区别是什么从网络协议七层模型上看的话,stmop 位于哪一层Tcp 和 udp 的区别Stomp 支持二进制数据传输吗还了解别的类似 stmop 的协议吗知识库用到了 rag 吗介绍第二个项目有用到微前端吗你提到了多页签功能,页签之间的隔离怎么做的权限控制的力度是怎么样的,做到了什么层级登陆怎么做的,基于 sso 还是 oauth介绍一下你了解的 oauth 的底层原理登陆态是如何保存的Jwt 的优势是什么Keep-alive 的底层原理是什么讲讲泛型判断一个变量的类型有多少种方法Promise 有多少种状态Promise all 和 race 的区别Race 的第一个失败了怎么办,会执行第二个吗,返回结果是什么前端的网络安全了解 csp 吗说一下对前端工程化的理解前端有哪些性能优化的手段了解 webpack 的 model federation 吗最小子数组和(不要求时间复杂度)实现一个 event 类12/02 字节火山三面自我介绍介绍部门业务,商业化逻辑自己的规划是什么样的介绍学生干部经历,比赛经历如何激励同学们参加学生活动的比赛中团队做了什么,自己做了什么事你觉得你们的比赛课题有实践前途吗复盘的话后续有哪些可以优化的点讨论比赛项目前端当中,做的那些事对个人成长帮助比较大说一下产品形态和技术方案这个项目是你从 0 到 1 去做的吗你刚开始的时候是如何设计代码框架的为了保证项目的扩展性,做了哪些抽象详细介绍业务拆分逻辑,一直往下拆分的话会到什么程度一个比较完整的技术方案需要包含哪些内容如何确保工程稳定性,怎么选择一个好的技术栈做业务的时候涉及到了哪些,技术栈当中有没有需要提前确定的部分什么时候开始学习的前端有什么快速学习的方法吗工作过程中,你喜欢和不喜欢和拥有什么特质的人合作针对不喜欢的人如何共处你会去做 final call 吗,强行做决定可能有哪些问题反问秋招最后的面试了,拖了好久的面经一直懒得写,但看起来有不少同学应该用得上,还是写出来了,字节的三面确实会更注重考察候选者的个人潜质和 leadership,和之前的其他的技术三面感觉很不一样
点赞 评论 收藏
分享
12-04 04:20
门头沟学院 Java
1. 简单介绍项目背景、开发流程及系统核心功能。2. 分布式场景下如何解决用户连续两次提交的问题?3. 仅开发后端接口吗?是否涉及前端工作?4. 后端部分是从0到1独立开发,还是基于现有项目二次修改?5. 请讲解JWT在项目中的具体执行流程。6. 未搭建前端但登录功能需前后端紧密配合,对此是如何处理的?7. JWT与OAuth 2.0之间是什么关系?8. 请说明JWT与OAuth 2.0的对比过程及结论。9. 项目中生成的Token除用户名和密码外,还包含哪些信息?10. 调研过业界登录功能的其他实现方式吗?除了JWT之外还有哪些?11. 项目中ES存储的题库内容总量有多少?12. 请解释什么是倒排索引。13. ES中的数据是如何导入的?是否结合了数据库使用?14. 该场景下直接使用事务是否可行?为什么?15. 使用RocketMQ时,是否调研过其他开源消息队列?对比结果如何?16. 消息队列中如何处理消息的幂等消费问题?17. 了解类加载的完整过程吗?请简要说明。18. 类初始化时,静态代码块、常量、复合函数的执行顺序是什么?(结合代码判断输出结果)19. 请讲解JVM的内存结构。20. 常见的垃圾回收器有哪些?21. G1相对于CMS有哪些核心提升?22. 如何认定“价值比较大”?(结合上下文场景说明)23. 了解JVM的相关参数吗?请举例说明。24. 项目中目前使用的是什么垃圾回收器?25. Spring中注入Bean有几种方式?26. 请讲解Spring中AOP的原理及应用场景。27. 场景题:设计美团话费充值功能的MySQL表结构,需要设计几张表才能实现核心功能?28. 针对充值记录表,编写对应的建表语句。
查看28道真题和解析
点赞 评论 收藏
分享
评论
5
25
分享

创作者周榜

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