i
Amazon
Proud winner of ABECA 2024 - AmbitionBox Employee Choice Awards
Filter interviews by
I applied via Company Website and was interviewed before Oct 2022. There were 4 interview rounds.
Online Assessment, most of the questions are easy and middle difficulty
A stack for water is a data structure that follows the Last In First Out (LIFO) principle, where elements are added and removed from the top of the stack.
Stack for water can be implemented using an array or a linked list.
When water is poured into a stack, it fills from the top and the last poured water is the first to be removed.
Example: If we pour water into a stack in the order 1, 2, 3, the stack will look like [3, 2
To build a chess game, you need to create a board, implement the rules of chess, and allow players to make moves.
Create an 8x8 grid to represent the chess board
Assign pieces to their starting positions on the board
Implement the rules of movement for each type of chess piece (e.g. pawn, rook, bishop)
Allow players to make legal moves and update the board accordingly
Check for checkmate and end the game when one player's k
I applied via Naukri.com and was interviewed in Oct 2021. There were 2 interview rounds.
Social media
Program to form a string with first character of all words in a given string.
Split the string into an array of words
Iterate through the array and extract the first character of each word
Join the extracted characters to form the final string
Given a number n, find the number just greater than n using same digits as that of n
Convert the number to a string and sort the digits in ascending order
Starting from the rightmost digit, find the first digit that is smaller than the digit to its right
Swap this digit with the smallest digit to its right that is greater than it
Sort the digits to the right of the swapped digit in ascending order
Concatenate the digits to
Function to add two numbers represented by linked lists and return the sum list.
Traverse both linked lists and add corresponding nodes, keeping track of carry
Create a new linked list to store the sum
Handle cases where linked lists are of different lengths
Handle cases where the sum has an extra digit due to carry
Return the sum linked list
The player who picks the last coin loses the game.
The game starts with n coins.
Each player can pick 1 to 5 coins in one turn.
The player who picks the last coin loses the game.
Determine if the given n coins will result in a win or loss for the starting player.
Count the number of 0's in a sorted array of 0's and 1's.
Iterative solution: Traverse the array and count the number of 0's.
Recursive solution: Divide the array into two halves and recursively count the number of 0's in each half.
Binary search can also be used to find the first occurrence of 0 and then count the number of 0's after that index.
Reverse a linked list using recursion, handling all corner cases
Create a recursive function that takes the head of the linked list as input
Base case: if the head is null or the list contains only one node, return the head
Recursively call the function with the next node as input and set its next pointer to the current node
Set the current node's next pointer to null and return the new head
Write a function to check whether a binary tree is a sub-tree of another binary tree (Check for all corner cases)
Create a function that traverses both trees and compares them
Check if the root of the second tree matches any node in the first tree
Handle cases where one or both trees are empty
Handle cases where the trees have different structures
What people are saying about Amazon
I appeared for an interview before Dec 2020.
Round duration - 90 minutes
Round difficulty - Hard
This was an online coding round where we were supposed to solve 2 questions under 90 minutes . Both the questions in my set were related to Graphs and were quite tricky and heavy to implement.
Given a directed graph with a specified number of vertices V
and edges E
, your task is to calculate the total number of distinct paths from a given source node S
to all ot...
Calculate the total number of distinct paths from a given source node to all other nodes in a directed graph.
Use dynamic programming to keep track of the number of paths from the source node to each node in the graph.
Consider using modular arithmetic to handle large numbers and prevent overflow.
Start by initializing the number of paths from the source node to itself as 1.
Iterate through the edges of the graph and updat...
You are provided with a number of courses 'N', some of which have prerequisites. There is a matrix named 'PREREQUISITES' of size 'M' x 2. This matrix indicates that fo...
Given courses with prerequisites, determine a valid order to complete all courses.
Use topological sorting to find a valid order of courses.
Create a graph with courses as nodes and prerequisites as edges.
Start with courses that have no prerequisites and remove them from the graph.
Continue this process until all courses are taken or there are no valid courses left.
If there is a cycle in the graph, it is impossible to com
Round duration - 60 Minutes
Round difficulty - Medium
This was a Data Structures and Algorithms round with some standard questions . I was expected to come up with an
efficient approach and code it as well .
You are provided with 'N' intervals, each containing two integers denoting the start time and end time of the interval.
Your task is to merge all overlapping intervals a...
Merge overlapping intervals and return sorted list of merged intervals.
Sort the intervals based on start times.
Iterate through intervals and merge overlapping intervals.
Return the merged intervals in sorted order.
Given a 2-dimensional binary matrix called Mat
of size N x M that consists solely of 0s and 1s, find the length of the longest path from a specified source cell to a destina...
Find the length of the longest path from a source cell to a destination cell in a binary matrix.
Use depth-first search (DFS) to explore all possible paths from source to destination.
Keep track of visited cells to avoid revisiting them.
Return the length of the longest path found, or -1 if no path exists.
Round duration - 50 Minutes
Round difficulty - Medium
This was also a DSA round where I was asked to code only one of the questions but I eventually ended up coding both
as I had some spare time and explained my approches very smoothly to the interviewer . This round went preety well .
Given an array of integers with 'N' elements, determine the length of the longest subsequence where each element is greater than the previous element. This...
Find the length of the longest strictly increasing subsequence in an array of integers.
Use dynamic programming to solve this problem efficiently.
Initialize an array to store the length of the longest increasing subsequence ending at each index.
Iterate through the array and update the length of the longest increasing subsequence for each element.
Return the maximum value in the array as the result.
Given a rotated sorted array ARR
of size 'N' and an integer 'K', determine the index at which 'K' is present in the array.
1. If 'K' is not present...
Given a rotated sorted array, find the index of a given integer 'K'.
Use binary search to find the pivot point where the array is rotated.
Then perform binary search on the appropriate half of the array to find 'K'.
Handle cases where 'K' is not present in the array by returning -1.
Round duration - 50 Minutes
Round difficulty - Medium
This was also a DSA round with 2 questions of Medium to Hard difficulty . I was expected to follow some clean code and OOPS principles to write the code in this round .
Given an array of integers ARR
and an integer K
, determine the rank of the element ARR[K]
.
The rank of any element in ARR
is defined as the number of elem...
Given an array and an index, find the number of elements smaller than the element at that index appearing before it in the array.
Iterate through the array up to index K and count the number of elements smaller than ARR[K].
Return the count as the rank of ARR[K].
Handle edge cases like empty array or invalid index K.
Design a data structure for a Least Recently Used (LRU) cache that supports the following operations:
1. get(key)
- Return the value of the key if it exists in the cache; otherw...
Design a Least Recently Used (LRU) cache data structure that supports get and put operations with capacity constraint.
Implement a doubly linked list to maintain the order of recently used keys.
Use a hashmap to store key-value pairs for quick access.
Update the order of keys in the linked list on get and put operations.
Evict the least recently used key when the cache reaches its capacity.
Tip 1 : Must do Previously asked Interview as well as Online Test Questions.
Tip 2 : Go through all the previous interview experiences from Codestudio and Leetcode.
Tip 3 : Do at-least 2 good projects and you must know every bit of them.
Tip 1 : Have at-least 2 good projects explained in short with all important points covered.
Tip 2 : Every skill must be mentioned.
Tip 3 : Focus on skills, projects and experiences more.
I applied via Naukri.com and was interviewed before Nov 2020. There were 3 interview rounds.
Function to return mutual friends given two ids and getFriends(id) function
Call getFriends(id) for both ids to get their respective friend lists
Iterate through both lists and compare to find mutual friends
Return the list of mutual friends
Function to return list of friends of friends in decreasing order of mutual friends
Use a set to store all friends of friends
Iterate through the list of friends of the given id
For each friend, iterate through their list of friends and count mutual friends
Sort the set of friends of friends by decreasing number of mutual friends
Given time slots, find a specific time with maximum overlap. Prove solution.
Create a list of all start and end times
Sort the list in ascending order
Iterate through the list and keep track of the number of overlaps at each time
Return the time with the maximum number of overlaps
Prove solution by testing with different input sizes and edge cases
Find the longest sub-array with increasing order of integers.
Iterate through the array and keep track of the current sub-array's start and end indices.
Update the start index whenever the current element is smaller than the previous element.
Update the end index whenever the current element is greater than or equal to the next element.
Calculate the length of the sub-array and compare it with the longest sub-array found s
Find the length of longest increasing subsequence and print the sequence from an array of integers.
Use dynamic programming to solve the problem
Create an array to store the length of longest increasing subsequence ending at each index
Traverse the array and update the length of longest increasing subsequence for each index
Print the sequence by backtracking from the index with the maximum length
Time complexity: O(n^2)
Exam...
Code to find a given integer in a rotated sorted array.
Use binary search to find the pivot point where the array is rotated.
Divide the array into two subarrays and perform binary search on the appropriate subarray.
Handle edge cases such as the target integer not being present in the array.
Use a min-heap to keep track of the largest K numbers seen so far.
Create a min-heap of size K.
For each incoming integer, add it to the heap if it's larger than the smallest element in the heap.
If the heap size exceeds K, remove the smallest element.
At the end, the heap will contain the largest K numbers in the input.
LRU Cache is a data structure that stores the most recently used items and discards the least recently used items.
Use a doubly linked list to keep track of the order of items in the cache
Use a hash map to store the key-value pairs for fast access
When an item is accessed, move it to the front of the linked list
When the cache is full, remove the least recently used item from the back of the linked list and the hash map
Solution to performing operations on a large array of bits.
Use bitwise operators to perform operations on individual bits
Use a loop to iterate through the array and perform the operations
Ensure that the array is large enough to accommodate all the bits
Consider using a data structure like a bitset for efficient bit manipulation
Some of the top questions asked at the Amazon Junior Software Developer interview -
based on 1 interview
Interview experience
based on 4 reviews
Rating in categories
Customer Service Associate
4.2k
salaries
| ₹0.6 L/yr - ₹6.8 L/yr |
Transaction Risk Investigator
3.1k
salaries
| ₹2 L/yr - ₹6.1 L/yr |
Associate
2.9k
salaries
| ₹0.8 L/yr - ₹7 L/yr |
Senior Associate
2.5k
salaries
| ₹2 L/yr - ₹10.5 L/yr |
Program Manager
2.2k
salaries
| ₹9 L/yr - ₹37 L/yr |
Flipkart
TCS
Netflix