Filter interviews by
I applied via LinkedIn and was interviewed in Sep 2024. There were 3 interview rounds.
DSA based questions were asked in the interview
Technical round again with DSA based questions.
I rate myself as proficient in coding with experience in various programming languages.
Proficient in coding with experience in multiple programming languages such as Java, Python, and C++
Have completed several coding projects and assignments demonstrating strong problem-solving skills
Familiar with data structures, algorithms, and software development best practices
Continuously learning and improving coding skills throu
I appeared for an interview before Jan 2021.
Round duration - 60 Minutes
Round difficulty - Medium
The round was held on Google Meet and I was given 2 coding problems for which first I had to explain my approach and then I had to write code in Shared Google Docs and dry run on sample test cases and discuss Time and Space Complexity.
Given a binary tree with N
nodes, determine whether the tree is a Binary Search Tree (BST). If it is a BST, return true
; otherwise, return false
.
A binary search tree (BST)...
Validate if a given binary tree is a Binary Search Tree (BST) or not.
Check if the left subtree of a node contains only nodes with data less than the node's data.
Check if the right subtree of a node contains only nodes with data greater than the node's data.
Recursively check if both left and right subtrees are also binary search trees.
Given a binary tree with 'N' nodes, identify the path from a leaf node to the root node that has the maximum sum among all root-to-leaf paths.
All the possibl...
Find the path from a leaf node to the root node with the maximum sum in a binary tree.
Traverse the binary tree from leaf to root while keeping track of the sum of each path.
Compare the sums of all paths and return the path with the maximum sum.
Use recursion to traverse the tree efficiently and keep updating the maximum sum path.
Round duration - 60 Minutes
Round difficulty - Medium
This was also a Data Structures and Algorithms round where I was asked to solve 2 coding problems explaining my approach with proper Complexity Analysis . After the coding questions were over there was some time left so the interviewer asked me some concepts related to DBMS.
You are given a permutation of 'N' integers. A sequence of 'N' integers is considered a permutation if it includes all integers from 1 to 'N' exactly once. Your task is ...
The task is to rearrange a given permutation of 'N' integers to form the lexicographically next greater permutation.
Iterate from right to left to find the first element that is smaller than the element to its right.
Swap this element with the smallest element to its right that is greater than it.
Reverse the elements to the right of the swapped element to get the lexicographically next greater permutation.
You are given a binary tree with 'N' nodes. Your task is to determine the size of the largest subtree within the binary tree which is also a Binary Search Tree (BST).
...Find the size of the largest subtree in a binary tree that is also a Binary Search Tree.
Traverse the tree in a bottom-up manner to check if each subtree is a BST.
Keep track of the size of the largest BST subtree encountered so far.
Use recursion to solve this problem efficiently.
Example: For the input 1 2 3 4 -1 5 6 -1 7 -1 -1 -1 -1 -1 -1, the largest BST subtree has a size of 3.
Indexing in databases is a technique used to improve the speed of data retrieval by creating a data structure that allows for quick lookups.
Indexes are created on columns in a database table to speed up the retrieval of rows that match a certain condition.
Types of indexes include B-tree, hash, and bitmap indexes.
Indexes can improve the performance of SELECT queries but may slow down INSERT, UPDATE, and DELETE operation...
Round duration - 50 Minutes
Round difficulty - Medium
This round also had 2 questions related to DS and Algo . One was from graphs and the other was an implementation of a LRU Cache . There were 2 interviewers and both of them were quite friendly and helpful. Overall, this round went well.
You are provided with a directed graph composed of 'N' nodes. You have a matrix called 'EDGES' with dimensions M x 2, which specifies the 'M' edges in the graph. Each edge...
Detect cycle in a directed graph using depth-first search (DFS) algorithm.
Use DFS to traverse the graph and detect back edges (edges that point to an ancestor node).
Maintain a visited array to keep track of visited nodes and a recursion stack to keep track of nodes in the current path.
If a back edge is found during traversal, a cycle exists in the graph.
Return true if a cycle is detected, false otherwise.
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.
Use a combination of hashmap and doubly linked list to efficiently implement the LRU cache.
Keep track of the least recently used item and update it accordingly when inserting new items.
Ensure to handle the capacity constraint by evicting the least recently used item when the cache is full.
Implement get(...
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 appeared for an interview before Dec 2020.
Round duration - 60 Minutes
Round difficulty - Medium
This round was purely based on Data Structures and Algorithms . One has to be fairly comfortable in solving Algorithmic problems to pass this round . Both the questions asked were quite common and luckily I had already prepared them from CodeStudio and LeetCode.
Given a Binary Tree with 'N' nodes, where each node holds an integer value, your task is to compute the In-Order, Pre-Order, and Post-Order traversals of the binar...
Compute the In-Order, Pre-Order, and Post-Order traversals of a Binary Tree given in level-order format.
Implement functions to perform In-Order, Pre-Order, and Post-Order traversals of a Binary Tree.
Use level-order input to construct the Binary Tree.
Traverse the Binary Tree recursively to generate the required traversals.
Ensure proper handling of null nodes represented by -1 in the input.
Return the three traversals as
Given a Singly Linked List of integers, your task is to reverse the Linked List by altering the links between the nodes.
The first line of input is an intege...
Reverse a singly linked list by altering the links between nodes.
Iterate through the linked list and reverse the links between nodes
Use three pointers to keep track of the current, previous, and next nodes
Update the links between nodes to reverse the list
Return the head of the reversed linked list
Round duration - 45 Minutes
Round difficulty - Medium
This round basically tested some concepts from Data Structures and File Manipulation .
Given two arrays A
and B
with sizes N
and M
respectively, both sorted in non-decreasing order, determine their intersection.
The intersection of two arrays in...
The problem involves finding the intersection of two sorted arrays efficiently.
Use two pointers to iterate through both arrays simultaneously.
Compare elements at the pointers and move the pointers accordingly.
Handle cases where elements are equal and update the intersection array.
Return the intersection array as the result.
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.
Print the level order traversal of binary tree in spiral form
Perform level order traversal of the binary tree
Alternate the direction of traversal for each level
Use a stack to reverse the order of nodes in each level
Print the nodes in the order of traversal
Find the maximum element in each subarray of size k in a given array.
Iterate through the array from index 0 to n-k.
For each subarray of size k, find the maximum element.
Store the maximum elements in a separate array.
Return the array of maximum elements.
To find the Kth largest element in two sorted arrays, we can use the merge step of merge sort algorithm.
Merge the two arrays into a single sorted array using a modified merge sort algorithm.
Return the Kth element from the merged array.
Merge two sorted arrays into one sorted array with expected time complexity of (m+n).
Use a two-pointer approach to compare elements from both arrays and merge them into the first array.
Start comparing elements from the end of both arrays and place the larger element at the end of the first array.
Continue this process until all elements from the second array are merged into the first array.
The algorithm finds the position of the 3rd occurrence of 'B' in an n-ary tree from a given index in constant time complexity.
Traverse the n-ary tree using a depth-first search (DFS) algorithm
Keep track of the count of 'B' occurrences
When the count reaches 3, return the current position
If the end of the tree is reached before the 3rd 'B', return -1
Check if a given string is a composite of two words from a limited dictionary.
Create a hash set of all the words in the dictionary.
Iterate through all possible pairs of substrings in the given string.
Check if both substrings are present in the hash set.
If yes, return true. Else, return false.
Switch adjacent nodes in a single linked list.
Traverse the linked list and swap adjacent nodes.
Keep track of previous node to update its next pointer.
Handle edge cases for first two nodes and last node.
Example: 1->2->3->4 becomes 2->1->4->3.
Traverse only the left sub-tree of a binary search tree.
Start at the root node
If the left child exists, visit it and repeat the process
If the left child does not exist, return to the parent node
Continue until all nodes in the left sub-tree have been visited
Design an efficient data structure for two lifts in a building of n floors.
Use a priority queue to keep track of the floors each lift is heading to
Implement a scheduling algorithm to determine which lift to assign to a new request
Consider adding a weight limit to each lift to prevent overloading
Use a hash table to keep track of the current location of each lift
To find the maximum number that can be formed from the digits of an integer.
Convert the integer to a string
Sort the characters in descending order
Join the sorted characters to form the maximum number
Reverse all the words in a given string
Split the string into an array of words
Loop through the array and reverse each word
Join the reversed words back into a string
Explaining how to handle 'n' in a string during swapping process
Identify the positions of 'n' in the string
Exclude those positions from the swapping process
Use a temporary variable to swap the characters
Ensure the swapped characters are not 'n'
Return the modified string
We can use any sorting algorithm like quicksort, mergesort, heapsort, etc.
Choose the appropriate sorting algorithm based on the size of the file and the range of numbers
Implement the chosen algorithm in the programming language of choice
Read the numbers from the file into an array or list
Apply the sorting algorithm to the array or list
Write the sorted numbers back to the file
Word suggestions in Eclipse can be implemented using algorithms like Trie or N-gram models.
Use Trie data structure to store the dictionary of words
Implement auto-complete feature using Trie
Use N-gram models to suggest words based on context
Train the N-gram model on a large corpus of text data
Combine both approaches for better accuracy
Consider user's typing speed and frequency of words for better suggestions
To check if a number k lies in a sequence formed by adding previous 2 elements, start with a=0 and b=1 and iterate until k is found or exceeded.
Start with a=0 and b=1
Iterate through the sequence until k is found or exceeded
If k is found, return true. If exceeded, return false
Check if a Binary Tree is a Binary Search Tree (BST)
A BST has the property that all nodes in the left subtree of a node have values less than the node's value, and all nodes in the right subtree have values greater than the node's value
We can traverse the tree in-order and check if the resulting sequence is sorted
Alternatively, we can recursively check if each node satisfies the BST property
Keep track of kth largest number in a stream of numbers.
Use a min-heap of size k to keep track of kth largest number.
For each incoming number, compare it with the root of the heap.
If it is larger than the root, replace the root with the new number and heapify.
The root of the heap will always be the kth largest number.
Infix expression can be evaluated using the concept of operator precedence and associativity.
Convert the infix expression to postfix expression using stack data structure
Evaluate the postfix expression using stack data structure
Use operator precedence and associativity rules to determine the order of evaluation
Parentheses can be used to override the default order of evaluation
I applied via Referral
Design optimal data structures for LRU cache
Use a doubly linked list to keep track of recently used items
Use a hash table to store key-value pairs for quick 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 hash table
Convert a sorted array to balanced binary search tree
Find the middle element of the array and make it the root of the tree
Recursively construct the left subtree using the left half of the array
Recursively construct the right subtree using the right half of the array
Repeat until all elements are added to the tree
Reverse a singly linked list in groups of k inplace
Divide the linked list into groups of k nodes
Reverse each group of k nodes
Connect the reversed groups to form the final linked list
Optimal data structure for storing words and their meanings
Use a hash table with the word as the key and a list of meanings as the value
Each meaning can be stored as a string or an object with additional information
Consider using a trie data structure for efficient prefix search
Implement a search function that can handle partial matches and synonyms
A recursive routine to calculate a ^ n
The base case is when n is 0, in which case the result is 1
For any other value of n, the result is a multiplied by the result of a^(n-1)
The recursive function should call itself with a^(n-1) as the new input
Design optimal data structure for never-ending stream of numbers for insertion, deletion, searching, kth largest and kth smallest.
Use a balanced binary search tree like AVL or Red-Black tree for efficient insertion, deletion, and searching.
Maintain two heaps, one for kth largest and one for kth smallest.
For finding kth largest, use a min heap of size k and for kth smallest, use a max heap of size k.
Alternatively, use a...
I appeared for an interview in Oct 2016.
based on 1 interview
Interview experience
Customer Care Executive
5
salaries
| ₹2.4 L/yr - ₹2.7 L/yr |
Quality Analyst
3
salaries
| ₹2.5 L/yr - ₹4.3 L/yr |
Marketing Executive
3
salaries
| ₹4.5 L/yr - ₹5.2 L/yr |
Founder
3
salaries
| ₹18 L/yr - ₹20 L/yr |
Horticulturist
3
salaries
| ₹3.6 L/yr - ₹6 L/yr |
Amazon
Flipkart
Amazon Development Centre India
Udaan