OYO Rooms visited our campus for Recruiting Software Engineers. Eligible Branches were CSE, CCE, ECE.
CGPA CUTOFF: Above six without an active backlog
Round 1 (Online Coding Round): The Online Round consists of 2 coding questions and 25 MCQs questions based on OS, OOPS, DBMS, and DSA. After the test, 45 students were shortlisted for interviews. I solved the second question entirely and was shortlisted for the interviews.
Round 2 (Technical Interview 1): The Interview began with a brief discussion about the projects that I had on my resume, fundamental questions were asked on that. After which I was asked 2 DSA questions in that round.
- The first question was to do Diagonal Traversal of Binary Tree. I gave the map-based solution using DFS. I was asked to code the approach.
- The second question was to find the median in a stream of integers (running integers). Firstly I gave the Brute-Force approach.
Then I was further asked to optimize the complexity. I gave a solution in time complexity O(N log N) and space complexity O(N). The idea was to use max heap and min heap to store the elements of the higher half and lower half. I was asked to code the approach. Max heap and min heap was implemented using priority_queue in C++ STL.
That was all in the first round of Technical interviews, it lasted for about an hour, and the interviewer was very friendly always ready to give you hints you need to tell them exactly where you are getting stuck.
After round 2, 26 students were shortlisted for round 3 interviews.
Round 3 (Technical Interview 2): The panelist was really very nice, and he takes the first 5-10 minutes to comfort me and then asked me for the introduction following some discussions on my entire resume including projects, extracurricular activities hobbies, and all. Then I was given the first DSA question of that round,
Given a matrix of dimension m*n where each cell in the matrix can have values 0, 1, or 2 which has the following meaning: 0: Empty cell, 1: Cells have fresh oranges, 2: Cells have rotten oranges.
- I was asked determine the minimum time required so that all the oranges become rotten. A rotten orange at index [i,j] can rot other fresh orange at indexes [i-1,j], [i+1,j], [i,j-1], [i,j+1] (up, down, left and right). If it is impossible to rot every orange then return -1.
Firstly I gave him the naive solution with time complexity O(max(m,n) * m *n) and space complexity O(1). But he told me to think differently and gave him a solution with some Data Structure. I answered with time complexity O(m*n) and space complexity O(m*n). The idea was to use BFS. I was also asked to code the approach.
After this, There was a discussion on the time complexities of Heap Sort, Heapify, Red-Black Tree. Then some questions related to ACID properties (DBMS) and CPU Scheduling Algorithms (OS) were asked.
In the end, the result was declared, and a total of 16 students were selected, including me. I hope my experience will help.