Mock Interview  295 Find Median from Data Stream  Summary and Q&A
TL;DR
A practical coding interview on finding the median in a dynamic data stream is demonstrated.
Key Insights
 🦕 The median is defined differently based on whether the total number of elements is odd or even, affecting the calculation approach.
 ⌛ Using a brute force approach to sort the entire array is inefficient for realtime data streams and can be improved through better algorithms.
 😫 The conversation focuses on using sets for dynamic data, leveraging their O(log n) insertion efficiency over arrays.
 😑 Implementing a system to classify elements into two groups (lesser and greater) relative to the median can streamline median finding.
 👨💻 The interview illustrates the process of interactive problemsolving typical within coding interviews.
 🙃 Challenges in maintaining balance between the two sides of the median prompt creative solutions involving counting frequencies and cumulative sums.
 🧑🏭 The implementation of priority queues is highlighted as an alternate method for potentially reducing constant factors in operation time.
Transcript
hey there welcome back to lead coding today i am with ajay and we have planned something for you guys so we are going to replicate an actual programming interview and uh today it's my turn to be the interviewer and ajay will be the interviewee so i will just provide him a problem statement and then he will try to come up with the most optimal solut... Read More
Questions & Answers
Q: What is the initial problem statement presented in the interview?
The initial problem is to determine the median of an array of numbers. The interviewee must explain how to do this given a set of numbers and how to compute the median as more numbers are added continuously.
Q: Explain the brute force approach discussed for finding the median.
The brute force approach involves sorting the array each time a new number is added and then calculating the median from the sorted array. This entails a time complexity of O(n log n) due to repeated sorting, making it inefficient for larger streams of data.
Q: How does the interviewee propose to optimize the brute force approach?
The interviewee suggests inserting new numbers into their correct position in a sorted array, which involves using binary search to find the appropriate index. However, while this optimizes the insertion process, the complexity remains O(n) for insertion due to needing to shift elements.
Q: What alternative data structures do the participants suggest for better efficiency?
The participants propose using two heaps (minheap for the larger half of numbers and maxheap for the smaller half), which can maintain the median in O(log n) time for insertion and O(1) time for retrieval, hence optimizing the overall approach to finding the median.
Summary & Key Takeaways

The video features a mock programming interview where one participant interviews the other on how to find the median of a continuously updated array.

Various approaches to solving the median problem are discussed, starting from a basic brute force method to more efficient techniques using sets and binary search.

A challenge is posed at the end, focusing on optimizing the median calculation given a constrained range of inputs.