# interview preparations
## Question 1: Missing two elements in a stream
You have a huge stream of numbers coming in say n numbers which are distinct but not in order. There are two numbers missing from it. Find those missing two numbers.
https://leetcode.com/discuss/interview-question/1105693/interview-experience-with-razorpay
### Ideas:
- O(n) space. Maintain in a hashMap
- We may use bloom filter if we can afford to pay penalty for false positives.
- Since only two numbers are missing. We may just keep very few parameters and compute the missing numbers
- Let S = sum of elements of stream
- Then, $S + a + b$ = (sum of first n numbers) = $n * (n + 1) / 2$
- Now, we need to find another equation to get values of a, b. (Two variables/unknowns, so we need two equations)
- Another equation could be like sum of square of elements of stream
- Let $S_2$ = sum of square of elements of stream
- $S_2 + a^2 + b^2$ = sum of squares of first n numbers = $n * (n + 1) * (2n + 1) / 6$
- Now, find a, b.
- Space required is $2 * \log(n)$
- To go into deep, we have to figure out what are the producers to the stream? Are they producing algorithmically? Do we have some bound over N?
- Do we need to parallelise the solution? In that case, we have to compute these parameters in parallel, e.g. you can use spark etc.
- How much should you wait for your stream to end? A good idea is to kind of batch for some duration and then compute this and keep doing this.
- How much is the solution worth it? What are use cases? Can we find alternates?
- https://www.quora.com/Programming-Puzzles-Given-a-continuous-input-stream-of-integers-can-you-find-the-maximum-N-numbers-at-any-given-instance
-----
## Question 2: Design In Memory SQL.
Design in-memory SQL(Questions like write function to add, remove the table, select * from table, delete from a table, etc)
## Question 3: External sort
## Question 4: Notification System
## Question 5: Red Bus Design
## Basic SQL analytics related queries
https://colab.research.google.com/drive/1gqerE0k1IGzQRuJzqonKg5iImow5guvT?usp=sharing&authuser=1#scrollTo=QBH1Au59oYiG
Nice examples of SQL queries that can be asked in any interview.
## Basic overview of TCP/IP, http and https, DNS protocols. It may be useful.