Tip 1: Solve at least one DSA sheet thoroughly.
Tip 2: Build a strong project in your 3rd year.
Tip 3: Maintain a decent CPI above 8 (for freshers).
Tip 1: Mention strong projects on your resume, as they will give you an edge over others.
Tip 2: Be sure to include only those things on your resume that you are familiar with.
It was a 3-hour online coding test consisting of one question, held in the evening at 4:00 P.M. Eleven students were shortlisted for the next round.

Brute Force Approach (Recursive Approach):
Since we are given a binary matrix of size N × M and an integer K, we maintain all possible combinations (as strings) of length M whose values sum to K.
For example, for the matrix [[1, 0, 1], [1, 1, 1], [1, 0, 1]] and K = 3, one possible combination could be 111, 102, 120, etc. We iterate over all the generated combination values, which represent the number of times each specific column is toggled. In each iteration, we maintain the maximum number of 1’s in any row, l_max, and update g_max = max(g_max, l_max), where g_max represents the global maximum number of 1’s in a row. We repeat these steps for all possible combinations to get the final answer.
Optimal Approach (Greedy + Hash Map Based Approach):
We take advantage of the fact that identical rows remain the same after performing K operations on columns (regardless of which columns).
Step 1: Create a hashmap to store the count of each identical row.
For example, for [[1, 0, 1], [1, 1, 1], [1, 0, 1]], the hashmap will look like:
101 -> 2, 111 -> 1
Step 2: Iterate over the hashmap and count the number of zeroes in each row. If the number of zeroes <= K and (K - number_of_zeroes) % 2 == 0, then it is possible to convert that row into all 1’s. Update g_max with map[key].
Explanation of the conditions:
The first condition is straightforward: to convert a row to all 1’s, the number of zeroes must be less than or equal to K.
Performing an operation twice on the same column nullifies its effect. That is why the second condition (K - number_of_zeroes) % 2 == 0 is necessary.
The round started with an introduction. Then the interview moved to the explanation of my solution to the 3-hour coding test. We discussed how I approached the question and my thought process, from the brute-force to the optimal approach.
Next, the interviewer asked a simple Linked List question: how to delete a node in a linked list if a pointer to the node is given. This was followed by a discussion on Fenwick Trees, including their implementation and use cases.
We then moved on to my project, which was related to an educational website. The discussion covered authorization, various types of tokens, session data management, and a brief discussion on RBAC (Role-Based Access Control).
Finally, 5 students were shortlisted for the next round.



• The reference to the head of the linked list is not given.
• The node to be deleted is not a tail node.
• The value of each node in the Linked List is unique.
• It is guaranteed that the node to be deleted is present in the linked list.

Since changing the links alone won’t work, the only way is to swap the node’s value with the next adjacent node’s value and then perform the normal deletion operation in the linked list.



I was explaining the standard Fenwick Tree code.
The round started with some casual chit-chat, followed by a discussion about my project. Then, basic HR-related questions were asked, and the round was concluded. Three students, including me, were selected for the intern role.

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