Probo | SDE Intern | Gurugram | Jul 2024 [Offer]
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)
Set Matrix Zeroes
Given an m x n integer matrix, if an element is 0, set its entire row and column to 0's. You must do it in place.
Follow-up: Devise a constant space solution.
Best Time to Buy and Sell Stock II
Given an integer array prices where prices[i] is the price of a given stock on the ith day, find and return the maximum profit you can achieve.
Design Data Structure with O(1) Operations
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.
Best Time to Buy and Sell Stock III
Given an array prices where prices[i] is the price of a given stock on the ith day, find the maximum profit you can achieve. You may complete at most two transactions.
Combine Data from Multiple APIs
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?
Find Numbers Divisible by Multiple Given Numbers
Given multiple numbers, you have to find the numbers between 1 and n (inclusive) which are divisible by all the given numbers.
Explain Inheritance with Real-Life Example
Explain Inheritance using a Real-Life Example.
Explain Polymorphism
Explain Polymorphism.
Design Tic-Tac-Toe Game
Design a system for the tic-tac-toe game.
Design Cache with Last-Inserted Removal
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.