Tip 1: Focus on problem-solving and unique projects.
Tip 2: Regularly review algorithms and apply them to real-world scenarios.
Tip 3: Effective time management is crucial in DSA and development.
Tip 1: Projects should focus on problem-solving, and you should include at least two projects.
Tip 2: Mention only those technologies in which you have significant experience.
Tip 3: Also, include some co-curricular activities beyond your technical background.
Timing: The round was held in the evening from 4 to 6 PM.
The environment was quite stressful, as it took place in college.
The round was fully proctored by invigilators, and cameras were used to monitor the candidates, with code plagiarism also being checked.



If arr = [3,2,3], and k = 1
then there are 4 subarrays with 1 odd elements:
[3], [3,2], [2,3] & [3].
Algorithm:
Step 1: For each element in the array, maintain two helper arrays: prefix (stores leftmost occurrence of a set bit) and suffix (stores rightmost occurrence of a set bit).
Step 2: Traverse the array to populate the prefix and suffix arrays.
Step 3: For each element, determine the number of valid subarrays using the prefix and suffix arrays.
Step 4: Accumulate the count of valid subarrays.
You are given a list of login records consisting of a username, time, and date. You need to count how many times each user logged in on a specific date. If the date or time is invalid, ignore that login record. (Practice)
Algorithm :
Step 1: Parse each login record to extract the user, time, and date.
Step 2: Use maps to store user login counts based on valid date entries.
Step 3: For each user, increment the login count for the specific date if the record is valid.



Merge Sort Algorithm -
Merge sort is a Divide and Conquer based Algorithm. It divides the input array into two-parts, until the size of the input array is not ‘1’. In the return part, it will merge two sorted arrays a return a whole merged sorted array.

The above illustrates shows how merge sort works.
It is compulsory to use the ‘Merge Sort’ algorithm.
Algorithm :
Step 1: Apply merge sort to the array, splitting it into subarrays.
Step 2: Count inversions during the merge step by comparing left and right subarrays. If an element from the left is greater than the right, it forms an inversion.
Step 3: Accumulate inversion counts from each merge operation.



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’.
Algorithm :
Step 1: Use two DFS traversals:
First DFS (dfs1) computes how many reversals are needed to make the tree rooted at node 0 unidirectional.
Second DFS (dfs2) calculates the minimum reversals needed for the entire tree by considering parent-child relationships and adjusting based on the direction of each edge.
Step 2: Return the minimum reversal count.
Timing - The round was in morning
The interviewer was very helpful and guided althrough my interview time and was very considerate and very knowledgeable person



1) Add a lowercase English alphabet at the end of the string.
2) Create a copy of the string and concatenate both of the strings.
Approach
The approach is based on Dynamic Programming (DP).
First, a check is made to see if zero is greater than one. If this is the case, we call the same function but swap zero and one. This is because the types of characters (0 or 1) are interchangeable, and we want to ensure that zero is less than or equal to one for the following steps.
Next, we initialize a DP array dp of size high + 1, where dp[i] represents the number of "good strings" of length i that we can build. We set dp[0] = 1, as there is one way to create a string of length zero: an empty string.
We then iterate over i from 1 to high:
If i is greater than or equal to one, we set dp[i] to dp[i - zero] + dp[i - one]. This update signifies the ways to build strings of length i by appending a '0' to strings of length i - zero and a '1' to strings of length i - one, while adhering to the maximum consecutive counts.
If i is less than one but greater than or equal to zero, we set dp[i] to dp[i - zero]. This optimization is made because, after some iterations, i will always be greater than zero, and execution will not fall into this branch again.
If i is greater than or equal to low, we update our answer ans by adding dp[i]. Strings of length i contribute to our final count of good strings.
Finally, we return ans modulo MOD, as the problem asks for the answer modulo 109+710^9 + 7109+7.
Tip 1: Thoroughly revise DBMS
Tip 2: Practice SQL frequently.
Light bulbs are numbered from 1 to 100 and are initially kept off. The first person comes and toggles all the bulbs that are multiples of 1, meaning they switch all the bulbs to 'ON'. The second person toggles all the multiples of 2, turning the even-numbered bulbs 'OFF'. The third person comes and toggles all the multiples of 3. This process continues until the 100th person has completed their part. After this, how many bulbs are 'ON'?
Tip 1: Just solve it with the right intuition.
Tip 2: Solve all the puzzles available online.
Timing: It was held in the afternoon after 12 PM.
This round was conducted online, where a mix of questions was asked by the interviewer.
The interview included HR questions, some problem-solving questions with puzzles, and mostly resume-based questions.
One container has 7 litres and another has 3 litres. How can we measure 5 litres of milk?
Tip 1: Practice all puzzles.
Tip 2: Always give a logical answer.
Tip 1: Do read and implement OS.
Tip 2: Explain the answers in brief.

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