Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started

Streaming Median for Live Events

HardPython00:00
I
Practice interviewer
Your interviewer
In session
I
Interviewer

Welcome to the Python screen.

The question is on your right: Streaming Median for Live Events. Read through the requirements first.

Run and submit your code as often as you need. You also have five interviewer messages this session - want to talk through your approach, or are you ready to start coding?

You need to log in / sign up to run or submit.

Problem

In a Meta live monitoring pipeline, event counts arrive one integer at a time. Implement a data structure that supports inserting a new integer from the stream and returning the median of all values seen so far at any moment.

Formal Specification

Implement a function that processes a list of operations and returns the result for each median query.

  • Input:
    • operations: a list of operations
    • Each operation is either:
      • {"op": "add", "value": x} where x is an integer
      • {"op": "median"}
  • Output:
    • Return a list where each median query contributes the current median.
    • If the number of elements seen so far is odd, the median is the middle value.
    • If it is even, the median is the average of the two middle values.

Constraints

  • 1 <= len(operations) <= 10^5
  • -10^9 <= value <= 10^9
  • Each operation is either {"op": "add", "value": x} or {"op": "median"}
  • At least one add operation occurs before every median query

Function Signature

def stream_median(operations):
Your solutionPython 3
You need to log in / sign up to run or submit.
Run your code to see test output