Online Technical Objective Round 1: The round had 50 questions about C++ and its outputs. It was conducted on Hackerrank. The time limit allotted was 75 mins.
After the first round, about 50 students had qualified for the second round.
Online Coding Round 2 – There were 2 questions to be solved.
Question 1: N nodes where given. Any two nodes where connected with each other if the GCD (node1, node2) was greater than a given threshold value(T). The problem was to find if two nodes given were having any path between them for Q queries.Applying modified BFS after creating the adjacency matrix passed most test cases.
Question 2.Modified Coin Change Problem.
There were N coins which had to be converted into M coins. If you were at X coins, then you could go to (X + Y) by adding Y coins where Y is a prime factor of X. Adding a Y constituted a single step. The problem was to find the minimum number of steps required for the conversion.The problem could be solved by Dynamic Programming.
8 Students were selected after the Coding Round for interview rounds.
Interview Round 1 : The interview was also online on skype. The interview began with the regular introductions. Then I was asked about my preferred language and the projects I did in them. Then some coding questions were asked.
Problem 1: Find the maximum path sum in a binary tree. The path could start and end at any node in the tree. I discussed with him my approach and he was quiet interested in it. He told me to write a pseudocode for it. Later he found some mistake and told me to re-check. After sometime I gave him a O(n) approach. He was satisfied with it.
Problem 2: Find LCA in a Binary Tree. I was stuck in finding LCA in a BST instead of a binary tree. So first I gave him a O(height) solution of finding LCA in BST. But he was expecting a O(n) solution for binary tree. So I gave him another solution to find LCA using path traversal in O(n).
Problem 3: There are N commits to a repository. For a particular commit x, it is known that there was no error in the repo and after a commit Y there is some mistake in the repository. The problem was to find the commit that caused the error.
I wrote the Binary Search Algorithm for the problem with complexity O(log(n)). After dry Run, he was convinced that the solution will work for the problem.
The round lasted for 1 hour .4 students were further selected for the next round.
Interview Round 2: This round began with the introduction too. The interviewer asked me for the Previous round’s questions and my approach to them.
Problem 1: I was given a Queue data structure that supports standard operations like enqueue() and dequeue().I had to implement a Stack data structure using only instances of Queue and queue operations allowed on the instances.
Problem 2: Implement LRU cache. I was implementing it using hashed map and linked list O(n). He was expecting O(1) for page replacement. Then I used Queue using doubly linked list in my approach.
He then asked me another Problem-Solving Question. Some Memory Management concepts, Project related questions and DBMS concepts were asked. He wanted to know the reasons of choosing a technology over some other in my projects.
After that he asked if I had any questions. I asked him some questions. He answered my each question with explanation.
This round lasted for about 1 hour 15 minutes.The interviewers were interested in knowing my approach to the DS problems rather than the code.
The complete process spanned for two days. I got selected for SLI+FTE. 4 students were offered both in the end.
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.