Tip 1 : Learn the concepts, not the solutions.
Tip 2 : You should have deep knowledge about the projects mentioned in your resume.
Tip 1 : Resume should be only 1 page.
Tip 2 : Try to tell a story through your resume. For eg - always mention the impact or scale of your projects/internship.
The test had 3 questions which had to solved in 75 minutes.The test was of medium difficulty.



1. You can assume that all the meetings will happen on the same day.
2. Also, as soon as a meeting gets over if some other meeting is scheduled to start at that moment, they can then be allocated that room.
Try to solve the problem in linear time complexity.
Consider there are three meetings scheduled with timings:
1pm - 4pm
3pm - 5pm
4pm - 6pm
At the start of time, meeting 1 will be allotted room 1, which will be occupied till 4 pm hence for meeting 2 we’ll have to provide another room. At 4 pm, meeting 3 can be organized in room 1 because by that time, meeting 1 would have ended. Hence we’ll require two rooms for holding all three meetings.
Step 1 : Created 2 arrays for start time and end time and sorted them.
Step 2 : Applied merge 2 sorted arrays to get a sorted array technique to find the minimum rooms required.
Step 3 : If the start time is less than the end time, I incremented the number of rooms required else I decremented the
number of rooms required.I also kept track of maximum rooms required at any instance of time



1. The maximum obtainable value can always be stored in 64-bit memory space.
2. The given number 'X' is always non-negative.
Step 1 : Sort the array.
Step 2 : Xor all elements of the array.
Step 3 : Remove maximum element from xor by doing xor_array ^= current_max_element.
Step 4 : return the resultant array.



If the given array is: [2 6 7 7 10] and K = 2. We need to remove A[0] = 2 and A[4] = 10, then the resultant array would become [6 7 7], where the difference between adjacent pairs are {1, 0}. Thus our answer would be 1. You can see that there would not be any better answer than 1 for this array
The first observation I had was what would I do if the first and last elements were not fixed. I was not able to solve this question completely, hence I used brute force approach(provided in above link) to pass some of the test cases.
The interview was taken by SDE2 and she was very friendly. All the questions asked were related to DS and algo. The first 10 minutes were used for introductions and the last 5 minutes were reserved for any questions that I have. Always try to ask meaningful questions at the end of the interview.



1. If 'X' is not found in the array, return 0.
2. The given array is sorted in non-decreasing order.
Step 1 : Provided the linear search solution then I was asked what if the array is sorted?
Step 2 : Since the array is sorted used lower bound and upper bound to find the frequency of the given element


1. The grid has 0-based indexing.
2. A rotten orange can affect the adjacent oranges 4 directionally i.e. Up, Down, Left, Right.
I told the interviewer I had already seen this question. Hence I quickly informed here about the concept of multi-source BFS to find the minimum time such that all oranges become rotten.




Step 1 : Assumed that there is no random pointer present, hence I was able to easily come with the solution to clone a normal linked list.
Step 2 : I was then asked can I do it in constant space, I was able to come up with the logic but wasn't able to code it.
The focus of this round was mainly on my projects and internships. It was taken by a Senior SDE and it more of a technical interaction. I was asked in-depth about my projects and most of the questions asked around OS/DBMS were based on my projects.
The interviewer wanted to judge whether I have core knowledge about subjects like OS and DBMS and also about the projects that I had done.
Two Questions: -
1. How would you optimize a database?
2. Difference between Relational vs NoSQL.
Tip 1: Ask follow up questions because sometimes the interviewers give very little information to see how the candidate would approach the problem
Tip 2: GeeksforGeeks is a really good reference for DBMS.
Tip 3: In the above question interviewer expected indexing, normalisation as the main answer.
You have an e-commerce website. You have to find the closest warehouse to the customer's address. How would you index your database based on latitude and longitude to find the closest warehouse?
Tip 1: The interviewer doesn't expect bookish answer, they are more interested in your thinking process
Tip 2: The answer for this question is geo-spatial indexing(the name is not important, how you reached the solution is important.
You have a large database(100s of TB).Now you have to apply some formatting to it and copy it to another database.
How would you do it?
Tip 1: Always ask follow up questions for such abstract questions
Tip 2: Before jumping to the solution try to identify the problem you might have.
In this question first thing that comes to mind is just copy data from one DB to another.
But the problem is we cannot have such a huge physical memory.
My solution was reading the database in chunks, then formatting it and finally copying it to new database.
Follow up question - How would you increase the efficiency in terms of time?
Answer - Multithreading
Then another question was asked - Is it possible that the process would stop executing?
Answer - Yes, Since we are writing data in a new database, before writing the thread has to acquire a lock to access the database, so if this thread gets killed somehow, other threads will not be able to acquire the lock to write in the new database.
It was the culture fit round taken by the Director of Engineering.
Tip 1: Always follow STAR method while answering such questions.
Tip 2: Be as authentic as possible.
Tip 1: Try to show your leadership and management skills while answering such questions.
Tip 1: Do a thorough research about the company, read about recent press conferences, core values etc.
Tip 2: Do not give generic answers and never mention money.
Tip 3: Try to show how your personal goals align with the company's goals.
Design a card game. OOD was required in this question.
Tip 1: Try to create a structure(entities required etc.) before answering the question and think loudly
Tip 2: Read about SOLID principles
Tip 3: Try to think of scalability questions on your own while approaching the problem.

Here's your problem of the day
Solving this problem will increase your chance to get selected in this company
What is recursion?