作业帮一面
2025年10月18日 作业帮一面
全程75分钟。
实习拷打
- 你在该项目中的职责是独立开发还是合作?
- 项目背景是什么?为什么要做这个工具?阿里内部没有类似工具吗?
- 开发前有调研开源方案吗?
- 技术方案是如何确定的?是和 Leader 一起定的吗?
八股
这部分基本是按项目的点来问的八股。
- 更新数据库 + 删除缓存策略下,如果删除缓存失败怎么办?
- 如何保证操作的原子性?
- 是否需要加报警机制?
- 多个请求同时更新,会不会因执行顺序导致数据不一致?
- 为什么“先更新 DB 再删缓存”能避免该问题?
- 缓存穿透是什么?如何解决?
- 布隆过滤器的误报是否有影响?
- 雪花算法的结构是怎样的?
- 雪花算法的实现是自己写的还是用现成的?
- 雪花算法有什么问题?(时钟回拨)
- 如何处理时钟回拨?
- JWT做用户认证的优势是什么?
- 这种方式有什么缺点?(无法主动失效、需设过期时间)
- JWT 的过期时间如何设置?考虑哪些因素?(用户登录频次等,应该再补上业务安全需要)
- 除了滑动窗口,还有哪些限流算法?
- 滑动窗口 vs 令牌桶 vs 漏桶,各自优缺点?
- 滑动窗口适合什么场景?
- 令牌桶适合什么场景?
- 能否结合系统负载做自适应限流?如何实现?
- 自适应策略应单独使用还是结合其他算法?
- 为什么用本地缓存 + Redis,而不是只用 Redis?
- 本地缓存相比 Redis 性能提升多少?
- 引入多级缓存是否增加系统复杂度?如何权衡?
- 多级缓存是否会加剧数据不一致?如何解决?
算法
这部分没有让我写,只是说实现思路。
- 最长递增子序列(LIS)问题,动态规划解法思路?时间复杂度?
- 如何记录具体的子序列(而不仅是长度)?
- 空间复杂度是多少?能否优化?
- 有没有更优解法?(二分查找)
- 二分法如何维护候选序列?
- 八皇后问题如何求解?
- 回溯法思路?如何判断冲突?
- 时间复杂度是多少?(O(N!))
- 如果某一行无法放置,如何处理?(回溯到上一行)
- 这种策略叫什么算法?(回溯)
AI 编程与工程实践
- 你用过哪些 AI 编程工具?(Cursor、GitHub Copilot、豆包、腾讯 CodeBuddy 等)
- AI 在你写代码中提供了多少帮助?
- 为什么使用频率不是特别高?
- AI 在哪些方面不能满足你?
- 遇到 AI 回答不准时,你会怎么做?
- AI 对开发效率提升大吗?