The process consisted of an online round and a maximum of two face-to-face technical rounds. I applied through amazon.jobs so it was an off-campus drive for me.
Online Round :
This round had 30 questions (28 MCQs + 2 Coding questions) in total and 90 minutes to complete the test. The test is monitored through webcam and microphone. The MCQs were mainly asked on C and data structures. Coding questions were fairly simple. If you’re good at problem solving you will get through.
Face to Face Interview:
The interviewer started with normal question about what my favorite subjects are. Moving onto Data Structures he asked which is my favorite data structure. I answered Trees ( It is totally up to you what your favorite is).
Then he asked a question based on Trees (obviously!)
Given a binary tree, print the top view of the tree. I told him the approach and then he asked me to find some corner cases. Unable to do so he drew one on the paper and there my logic failed. Then after some thinking I optimized my approach and he seemed to be satisfied with the answer.
On to the question, he asked me to print the nth node from the last of the given linked list. I explained him the approach and he then told me to write the code on the paper. He reviewed the code and found some mistakes and I corrected them at once. I did it in two traversals, he asked for a approach with one traversal. He even provided me a hint of using two pointers instead of one. I was getting some trouble but was close to the solution.
He then asked me to write my name on the paper and told me to go.
After 5 minutes, I was told that I cleared round 1.
The interviewer was very friendly. He asked me to introduce myself. After that he jumped to the technical questions.
- Given a set of strings and an input string. A string is valid only if it can be broken into non-overlapping sub-strings such that each of those sub-strings are available in the set. The question was somewhat similar to this. Since I am weak in strings I was not getting any good solution. I told him my approach and he told me take time and think about it. Watching me struggling with the solution, he started to ask me about my projects. I was not able to find a good solution. He then moved onto the next question.
- Given a binary tree and two nodes, Node 1 and Node 2. Print the path from Node 1 to Node 2. I told him that we can find the lowest common ancestor (LCA) of both nodes and store path from LCA to Node 1 in a stack and print the stack and path from LCA to Node 2 in the stack (except for LCA this time because it’s already been printed) and print the stack. He said it’s a good approach and asked me to write the code. I was unable to write the code properly. He asked me questions on LCA.
In the end he asked me if I have any questions. I asked what kind of projects do interns get to work on at amazon. He replied it varies on department and location.
It was a nice interview experience. GeeksForGeeks is a good place to brush up your skills on Data Structures and problem solving.
I was not selected for the role but working hard for future.