Summary
I interviewed for an SDE Intern position at Probo in Gurugram, which involved multiple technical rounds and an HR discussion. I successfully received an offer for the role.
Full Experience
Round 1
My first round was taken by Akash Utreja Sir. We discussed several coding problems, including standard LeetCode questions and a data structure design problem. I was expected to provide solutions and discuss follow-up questions.
First Question: Set Matrix Zeroes
I was given the problem Set Matrix Zeroes where I had to set entire rows and columns to zero if an element was zero, in place. A follow-up asked for a constant space solution, which I provided.
Second Question: Best Time to Buy and Sell Stock II
Next, I tackled Best Time to Buy and Sell Stock II, focusing on maximizing profit from multiple transactions.
Third Question: Design Data Structure with O(1) Operations
I was asked to design a data structure that supports insert, remove, search, and getRandom operations all in O(1) time.
Fourth Question: Best Time to Buy and Sell Stock III
The final question in this round was Best Time to Buy and Sell Stock III, which involved finding the maximum profit with at most two transactions.
Round 2
Karan Varshney Sir conducted my second round, which focused on API integration, number theory, OOP concepts, and system design.
First Question: Combine Data from Multiple APIs
I was asked to get and combine data from a list of APIs. A follow-up questioned my approach for 100 lists of APIs, to which I suggested using Promise.all().
Second Question: Find Numbers Divisible by Multiple Given Numbers
I had to find numbers between 1 and n divisible by all given numbers, which involved concepts of LCM and GCD.
Third Question: Explain Inheritance with Real-Life Example
I explained Inheritance using a real-life example and provided a simple C++ class structure.
Fourth Question: Explain Polymorphism
I defined Polymorphism and explained it using method overriding and overloading examples in object-oriented programming.
Fifth Question: Design Tic-Tac-Toe Game
I was tasked with designing a system for the Tic-Tac-Toe game, outlining the necessary functions and logic.
Sixth Question: Design Cache with Last-Inserted Removal
The last question required designing a cache data structure of size 100 that removes the last inserted key-value pair if the limit is reached before inserting a new value.
Round 3
My third and final round was with Prashant Sir. This was a general HR interview where we discussed managerial questions, my previous projects, and internships.
Ultimately, I received an offer for the SDE Intern position.
Interview Questions (10)
Design a data structure that supports the following operations in O(1) time.
insert(x): Inserts an item x to the data structure if not already present.remove(x): Removes item x from the data structure if present.search(x): Searches an item x in the data structure.getRandom(): Returns a random element from the current set of elements.
Get the data from a given list of APIs, then combine all the data and return that data.
Follow-up Question: Suppose there are as many as 100 lists of APIs, now what will be your approach?
Given multiple numbers, you have to find the numbers between 1 and n (inclusive) which are divisible by all the given numbers.
Explain Inheritance using a Real-Life Example.
Explain Polymorphism.
Design a system for the tic-tac-toe game.
Design a data structure that can store key-value pairs in cache memory for size 100 and can remove the last inserted key-value pair if the limit is reached or the size of the data structure is reached to 100 and then insert the new value.