Amazon visited our campus for SDE_1. The entire interview procedure was divided into a coding round and a set of 4 face to face interview.
Online coding round:
It was a 90 minutes test with 22 questions(20 MCQs + 2 coding) set hosted on HackerRank.
1. Reverse words in a string.
Example: Let the input string be “i like this program very much”. The function should change the string to “much very program this like i”
MCQs consisted of OS, Geometry, Basic Maths, C ,Recursion and such topics.
Whoever solved atleast two questions were chosen for the interviews.
He asked me about my Summer Internship Project at Microsoft India Development Centre, Hyderabad and asked me about several technologies involved in it and why I had used certain things.
Then he moved on to two technical questions.
1. Given a sorted and pivoted array, find an element given to you.
I had given him a O(logn) solution with pivot finding and then doing binary search in either halves. But it was a O(logn) + O(logn), so he asked me to modify it to a one O(logn) question. After giving him the solution, he asked me to write production level code considering all corner test cases.
2. Given a BST which consists of marks of students in a class. It is found that all even ranked students have cheated,so we reduce k marks from their score. Modify the BST to make the change of marks without considering that after this operation, the BST might not remain a BST anymore.
I gave him a modified inorder traversal so that elements are sorted and solved it using a counter variable. He asked me to modify it to using neither a static counter variable nor a pointer passed to the recursive calls. For both questions, he also asked me the time and space complexity.
He asked a very brief idea about my Summer Internship again. Then he asked me 2 questions again.
I discussed a lot with him as to which data structure could be used and finally came up with a Queue solution. I was asked to code it again considering all the corner cases.
2.Implement a queue using stacks with the operations (Enqueue,Dequeue,IsEmpty,Size).
While I was telling him the solution,he even asked me whether I would prefer Arrays or Linked List implementation when i make a normal queue.
(Space and time complexity for both)
He also asked me a brief introduction to my Summer Internship Project.
He began with the pros of cons or arrays and linked lists. Then a question on arrays:
I started with XOR solution, but he told me the OS doesn’t support XOR. So, I gave him a HashMap
Asked me the Space and Time complexity of the most optimized solution.
2. Given four types of array
a)Increasing(1,2,3,4) b)Decreasing(4,3,2,1) c)Increasing-decreasing(1,2,3,4,7,6,5) d)Decreasing-increasing(7,6,5,1,2,3,4)
Find the type of array in O(1) and then find the maximum element in the array.
Except case c, max element is O(1). For c, I gave binary search solution. he asked me to write the code considering the corner cases.
F2F 4(Bar raiser):
He asked me what my favorite subject was. I told DS,so he asked me from DS.
1. Write a class of circular queue using array implementation with Enqueue and Dequeue member functions.
2. Given a binary matrix( filled with 0 and 1 only) where 0 depicts water and 1 depicts land. We can traverse either up or down or left or right.Given a source and destination,find if we can reach the destination.
He then modified it to finding the path followed and then the minimum path possible.
(Code wasn’t required)
3. Given a series of operations to build a project along with the time taken by each operation. Some operations are dependent on previous operations. Find the minimum number of days needed to finish the operation.
I wasn’t very sure of the solution I was thinking,so he said it was okay and concluded the interview.
1. Keep sharing your idea with the interviewer, he would help you a lot.
2. Don’t give up, you might come up with a brilliant idea with a little more thinking.
And do remember:
“If it doesn’t end well then it probably hasn’t ended yet”
I would like to thank all my friends for all the support and a special thanks to GeeksForGeeks for their awesome website. Cheers! 🙂
If you like GeeksforGeeks and would like to contribute, you can also write an article and mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.