校招面经 - 滴滴提前批 - 后端 (已意向)

时间线:8.14(一面、二面)- 8.21(三面) - 9.14(意向)

吐槽:理论上应该一个下午面完,但三面面试官有事鸽了我两次!!三面其实回答的不太好,题目也做的不太好,而且面完一直杳无音信,官网查不到状态,以为早就挂了,没想到突然意向了。

一面(45m)

实习相关:

  • 简单介绍
  • 难点是什么(业务复杂度)
  • 服务端稳定性如何支持?各方面怎么做的?
  • 可观测性
  • 基于稳定性指标优化
  • 通用优化
  • 尖刺导致下游打崩如何处理
  • 扩容
  • 限流

Go 八股:

  • return 时,如何考虑使用指针还是示例
  • golang gc 的时机(内存使用到达一定比例时)
  • golang 的多线程优点
  • 可增长栈
  • M:N 调度
  • 为什么 M:N 调度既有全局队列又有本地队列?
  • 避免竞争(加锁劣化性能)

数据库八股:

  • B+ 树的特点

题目:

  • (要求用 Go,偏工程)对一个很大的一维数组求和,但是要多线程加速,且每个线程不超过 2 s。
  • 根号分块,然后 sync.Wait 即可。超时控制通过 time.After。

二面

忘了录音。

面试官挺厉害的,不仅听懂了我的项目,还提了我没想到的方案优缺点,对我很有启发。

三面(1h6m)

实习相关:

  • 介绍项目一(背景、目标、个人工作)
  • 框架(原状、对比方案)
  • 为什么叫框架,内部是有什么架构设计?
  • 介绍另一个项目(filter)
  • filter 看着当前有些问题,如果让你实现会怎么做?
  • CPU 上涨,怎么处理?
  • 一次 RPC 请求中,超时怎么判断是哪个部分的问题,客户端问题、服务端问题、网络抖动问题?

C++ 八股:

  • 引用计数场景,怎么保证线程安全?答了 CAS,查了下 C++ 的 atomic 应该是通过硬件原子指令(包括 CAS )

题目:

  • 单例模式 + lazy init + 线程安全。
  • 司机 - 订单匹配。多个司机 D1 D2 等,多个订单 O1 O2 等,给出多个边,比如 D1 - O1、O3 (给司机1分配订单1和3)的价值分,求最大匹配。
  • 回答:一个非常鬼畜的题目。如果是一对一的边,那就是经典二分图最大匹配,可以用匈牙利解法直接解,可惜不是。最终给了个 dfs 暴搜做法。
  • 反问:一个低复杂度做法是整数线性优化 ilp,但比较复杂,不要求面试中写出来,面试更多看数据结构、逻辑思路、代码风格。
  • 吐槽:整数线性优化 ilp 是一个 NP-hard 问题(指数复杂度),哥么你都三面面试官了,这么技术的嘛。。。

#牛客创作赏金赛##牛客在线求职答疑中心#
全部评论
你搞过acm吗?不然我觉得很少出这种题
点赞 回复 分享
发布于 2024-10-04 10:19 江苏
请问什么时候意向的呀
点赞 回复 分享
发布于 2024-09-23 09:21 上海

相关推荐

07-01 22:23
已编辑
字节跳动_实习生(实习员工)
1.简单的自我介绍2.八股和项目C++ 相关怎么获取一个变量占用的内存的大小?如果你对一个指针用 sizeof,它的返回值是什么?如果是对普通的指针使用 sizeof,它的大小是多少?方法的签名包含哪些部分?用过 C++ 的模板编程吗?在模板编程里面,为什么会要求你把模板的声明和实现都放在头文件里面?了解这个模板是怎么实现的吗?它的原理是什么?操作系统与多线程/多进程项目中的互斥锁是可重入的吗?了解过可重入锁和不可重入锁吗?请介绍一下自旋锁。自旋锁会有额外的性能损耗吗?你了解内核态和用户态的情况吗?内核态和用户态,是怎么实现隔离的呢?进行系统调用的时候会发生什么?子进程它怎么和主进程去交互呢?除了管道,还有其他进程间通信的方式吗?进程和线程有什么区别?进程之间的内存是共享的吗?有没有接触过线程之间不共享内存的语言?数据库与网络了解 Protobuf (PB) 吗?为什么(在你的项目中)使用 SQLite 而不是 MySQL?你的项目中有用索引吗?请介绍一下数据库索引。3.手撕:有序数组查找范围(两次二分查找)4.反问面试流程大概要多久?什么时候能知道结果?面试官年轻了点,人还是很友好的,不懂的也不会一直追问,对项目的提问还是有一定深度的,答上来了大概70-80%。
查看24道真题和解析
点赞 评论 收藏
分享
评论
2
17
分享

创作者周榜

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