面试官最爱问的“设计推特”,真的是考你会不会写代码吗?
面试官最爱问的“设计推特”,真的是考你会不会写代码吗?
很多程序员第一次看到 LeetCode 的《设计推特(Design Twitter)》题目时,都会有一种错觉:
这不就是几个增删查改接口吗?
结果一写。
发现时间复杂度爆炸。
再优化。
发现关注关系越来越乱。
再优化。
发现新闻流(News Feed)根本拉不动。
最后才明白:
这道题考的从来不是代码,而是系统设计思维。
事实上,这道题之所以经典,是因为它把互联网产品最核心的几个问题全部浓缩进来了:
- 用户关系管理
- 时间线排序
- 海量数据读取
- Feed流生成
- 优先队列应用
- 数据结构设计
看似一道算法题。
实际上已经有了微博、X(原Twitter)、朋友圈等社交产品的影子。
今天咱们就来聊聊这道面试高频题。
一、题目到底要干什么?
题目要求实现一个简化版 Twitter。
支持四个操作:
postTweet(userId