Design Twitter

Asked byGoogleAmazonWalmart Global Tech

Problem

Design a simplified version of Twitter where users can post tweets, follow and unfollow other users, and retrieve the 10 most recent tweet IDs in their news feed — a mix of their own tweets and those from users they follow, most recent first.

Examples

Example 1
Input:postTweet(1,5); getNewsFeed(1)
Output:[5]
Example 2
Input:follow(1,2); postTweet(2,6); getNewsFeed(1)
Output:[6,5]

Constraints

  • 1 <= userId, tweetId <= 500
  • At most 3 * 10^4 calls total.

Solve it in the editor. Sign in free to run your Python or JavaScript against test cases, get a verdict, and track your attempts.

Solve on FeatCode →

How to approach it: the Heap / Priority Queue pattern

A heap keeps the minimum (or maximum) element accessible in O(1), with O(log n) insert and remove. It's the tool whenever you repeatedly need "the smallest/largest remaining item" without needing everything fully sorted.

Look for this pattern when

  • You need the top-k largest/smallest elements, not a full sort.
  • You're merging multiple sorted sequences (always take the smallest available head).
  • You need a running min/max/median as data streams in.

Read the full Heap / Priority Queue guide →

Video walkthroughs

Original problem on LeetCode ↗

More Heap / Priority Queue problems