Tip 1: Focus on solving problems (not limited to DSA; aim for an all-round approach).
Tip 2: Develop a strong grip on computer science fundamentals.
Tip 1: Prepare your resume according to the job description.
Tip 2: For on-campus opportunities, the ATS score doesn’t matter much. However, for off-campus applications, aim for an ATS score above 80 for easier shortlisting.
It was the first round, which consisted of MCQs and coding questions conducted on a coding platform. We had to take the test in the campus computer lab under AI proctoring, with invigilators also present. The round included 40 questions based on basic aptitude, reasoning, OOPs, and computer science fundamentals, followed by two coding questions. One coding question was of medium difficulty and based on graph data structures, slightly above the typical medium level. The other was an easier question on custom object sorting, which could be attempted only in the C language (only the second question was restricted to C).



Choose two nodes ‘X’ and ‘Y’, such that there exists an edge from ‘X’ to ‘Y’.
Delete edge ‘X’ to ‘Y’.
Add edge ‘Y’ to ‘X’.
I created an adjacency list where:
u → v has a weight of 0, and v → u has a weight of 1.
I used a deque instead of a queue:
I maintained a distance array initialized to infinity.
Starting from the source node S, I kept relaxing edges similar to Dijkstra’s algorithm, but using the deque-based approach.
Once the destination node D was reached, the stored distance represented the minimum number of edge reversals required.

- Players should be sorted in descending order of their scores (highest score first).
- If two or more players have the same score, they should be sorted by their names in ascending lexicographical (alphabetical) order.
Use Merge Sort to solve this problem because:
It was based on two DSA questions, both of which were of medium difficulty. The interviewer was friendly and guided me properly in areas where I was going wrong. Overall, it was a very good interview.



Let the price of Ninja Coin for 5 consecutive days is [4, 2, 3, 3, 7].
Then the span of Ninja Coin on the 0th day is 1 because we cannot move backward from day 0.
The span of Ninja Coin on the 1st day is 1 because the price on day 0 is 4 which is greater than 2, so the only day 1 is counted.
The span of Ninja Coin on the 2nd day is 2 because the price on day 2 and day 1 is less than or equal to 3 and then on day 0 price is 4 which is greater than 3, so we count day 2 and day 1.
The span of Ninja Coin on the 3rd day is 3 because the price on day 3, day 2, and day 1 is less than or equal to 3, and on day 0 price is 4 which is greater than 3, so we count day 3, day 2, and day 1.
The span of Ninja Coin on the 4th day is 5 because its value is higher than all previous days values.
Thus you should return an array/list [1, 1, 2, 3, 5].
The idea is to use a stack to directly find the first previous greater element for each day, instead of checking all consecutive smaller elements. Once we know that index, we can compute the span as:
Span[i] = currentIndex − indexOfPreviousGreaterElement



We have a linked list 1->2->3->4->5->6->7 and so on. You are supposed to swap pairs of a linked list like swap (1,2), (3,4), (5,6), and so on.
1. You may not modify the data in the list’s nodes; only nodes themselves may be changed. Because imagine a case where a node contains many fields, so there will be too much unnecessary swap.
2. If a pair of a node does not exist, then leave the node as it is.
The idea is to swap the data of the first two adjacent nodes and then recursively move to the next pair of nodes. In each recursive call, the data of the current node is swapped with that of its next node, and the function continues until there are fewer than two nodes left in the list.
This round was primarily focused on basic HLD questions, such as how to scale a system, the factors involved, where to use caching, and how to improve system performance. It was followed by an LLD discussion, where I was asked a complete design question along with more detailed OOP-related queries. I was also asked to design a simple class diagram for a parking system and then implement it.
The interviewer was very nice. I got stuck at a few points, but they helped me work through them and made the interview interactive. Overall, it went really well.
This was a Technical + Managerial round based on the skill set mentioned in my resume. The round may differ for others depending on their resumes. Since the interviewer was from the team I would be working with after selection, the main focus was to assess my knowledge in relevant areas. This can vary for other candidates.
Design a simple class diagram for a parking system and then implement it.
Explain how to scale an HLD system and the factors involved.
Explain the use of caching and how to make the system faster.
It was a general HR round, mainly focused on getting to know me better as a person. The HR asked questions about my background, current location, family, and my interest in and willingness to relocate to Bangalore for the role. They also discussed my past work experience, the types of projects I have worked on, and my overall career journey so far.
The conversation was quite friendly and relaxed. The HR aimed to understand my motivation for joining the organization, how I align with the company’s values, and my expectations regarding the role and work environment. Overall, it was a smooth and positive discussion focused on assessing both my professional and personal fit for the position.

Here's your problem of the day
Solving this problem will increase your chance to get selected in this company
What is recursion?