Test Pattern: Two coding problems, 28 MCQs
Time: 1 hr 30 min
MCQs were solely based on the questions pertaining to the input/output of a C program. A general pattern observed was that there would be a code snippet in the question and one would have to provide correct output/error of that particular program.
Coding problems included:
- Count trailing zeroes in a factorial of a number
- A coordinate plane is given. On each point (x, y), there is x+y number of apples on it. A person is standing on (0, 0) and he wants to buy a square plot having N number of apples inside it (including the periphery). Return the value of perimeter of that square plot if the value of N is given
After a couple of weeks, I was called for the face to face interviews. Four rounds of interviews were conducted spanning over two days.
Round-1 (Technical) [60 mins]
Questions in this round were of easy difficulty, having pretty straight forward solutions. The interviewer asked the below-mentioned questions. Once I provided the correct solution, he tweaked the question to some degree and again asked me for the solution. After receiving the correct solutions, he asked me to write the code of it on paper.
1. Count all possible paths from top-left to bottom-right in a matrix
Tweak: Count all possible paths from top-left to bottom-right in a matrix having obstacles
2. Find inorder predecessor and successor of the node in BST in which nodes also have a parent pointer along with left and right pointers.
Round-2 (Technical) [120-150 mins]
This round was the most difficult round of the entire process. I was expecting that this round would have an easy-medium kind of difficulty level but the interviewer had other plans. He straightforwardly asked me to solve Longest Palindromic Substring. I was taken aback a bit (as Dynamic Programming hasn’t been my strong point) and sat there doing nothing for about 10-15 mins.
After then, slowly, ideas started coming into my mind and I started to design the solution on the paper. At regular intervals, the interviewer would ask me about what I am thinking and would point out contradictory cases if the approach was wrong. But after some point, I realized that my approach was nowhere in the vicinity of the correct solution and so did my interviewer. So he started providing me hints disguised in questions like “What if you approach the question from this perspective…“. After a couple of hints, I came on the right track and went on to solve the question!
Apart from this, he asked me the questions on heaps, its building, inserting and deleting time complexities, and priority queues.
After the round ended, I was almost certain that I was done for the day but again, the interviewer had other plans!
Round-3 (CS Fundamentals) [30-40 mins]
This round was solely focussed on checking my Computer Science fundamentals. Questions were from the domains of Operating System, DBMS and Computer Networking. Difficulty level was easy, as they were asking only basic questions of this domain. Some of them are mentioned here:
- What is Deadlock?
- How deadlocks can be detected?
- Given a directed graph of process dependency, write a code to detect deadlock. (Solution: Cycle in Directed Graph)
- What are ACID properties in DBMS?
- Difference between TCP and UDP
Round-4 (Tech + HR) [90-120 mins]
- Find Excel column name from a given column number (Wrote the solution on paper)
- Coin-in-a-line problem
- Detailed explanation of need and working of Virtual Memory in Operating System
- Overview of pages and page faults
- Why Amazon?
- Which was the most difficult interview round and why?
- Did you solve all the questions in all the rounds?
- Given the fact that your current company is also good, why are switching the company at such an early stage of your career? (Reason for asking this was because it had only been two months since I had started my first job)
- What were the mistakes that you have committed in your current job and what did you learn from it?
After the round got completed, the HR team informed me that they will get back to me after some days, and guess what, I got the offer!
Last but not the least, I would like to list down some points which I personally experienced during this interview process:
- Interviewers provided enough time for the candidate to think, design and write the solution.
- They were willing to help the candidate in case he was unable to solve the problem by providing hints and pointing out caveats in his/her solution.
- Rather than the solution, they were more interested in checking how a candidate approaches a problem and whether he/she has the ability to solve it if provided some help.
- Testing candidates’ coding skills with pen and paper coding style.
Looking forward to working with you at Amazon.
ALL THE BEST! 🙂
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more, please refer Complete Interview Preparation Course. In case you are prepared, test your skills using TCS, Wipro, Amazon and Microsoft Test Serieses.