Tip 1: Solve DSA problems consistently and focus on understanding patterns, not memorizing them.
Tip 2: Build at least one real-world project to demonstrate practical skills and problem-solving ability.
Tip 1: Keep your resume concise, truthful, and highlight measurable impact in each project or experience.
Tip 2: Include a few strong, well explained projects that demonstrate your technical depth and creativity.
The test was conducted in the evening and started on time. The environment was smooth and well-monitored, with no technical glitches. The round mainly focused on evaluating coding ability, analytical thinking.



Input: ‘N’ = 4, ‘arr’ = [3, 1, 2, 4], 'K' = 6
Output: 2
Explanation: The subarrays that sum up to '6' are: [3, 1, 2], and [2, 4].
1) I first thought of checking all subarrays using two loops, but that was too slow (O(N²)).
2) Then I used a better way with prefix sum and HashMap.
3) I kept a running sum of elements. For every new sum, I checked if (sum - K) already appeared before — that means a subarray ending here has sum K.
4) Stored counts of each prefix sum in a map to handle multiple cases.
5)This made the code run in O(N) time.



'S' = "{}()".
There is always an opening brace before a closing brace i.e. '{' before '}', '(' before ').
So the 'S' is Balanced.
1) I used a stack to keep track of opening brackets.
2) For every character
>If it was an opening bracket, I pushed it to the stack.
>If it was a closing bracket, I checked if the top of the stack had the matching opening one.
3) If not matching, it’s invalid; otherwise, I popped it.
4) In the end, if the stack was empty, the string was valid.
5) The solution worked in O(N) time.
It was a google meet interview. The interview was conducted at 10:45 AM. It started on time and went smoothly. The environment was calm and comfortable, with no technical issues. The session was one-on-one and conducted in a focused yet relaxed manner. The interviewer asked me to solve two coding questions online, allowing me to write, run, and explain my code in real time. There was a single interviewer, who was polite and professional. They observed my problem-solving approach closely, gave hints when needed, and ensured the discussion stayed interactive and stress free.



The given linked lists may or may not be null.
If the first list is: 1 -> 4 -> 5 -> NULL and the second list is: 2 -> 3 -> 5 -> NULL
The final list would be: 1 -> 2 -> 3 -> 4 -> 5 -> 5 -> NULL
Create a dummy node dummy and a pointer tail pointing to dummy.
Use two pointers p1 = head1 and p2 = head2.
While both p1 and p2 are not null:
Compare p1->val and p2->val.
Append the smaller node to tail->next and advance that pointer (p1 or p2).
Move tail = tail->next.
After the loop, attach the non-empty remainder: if p1 not null then tail->next = p1 else tail->next = p2.
Return dummy->next as the head of the merged list.



Input: ‘N’= 25, ‘s’ =”Take u forward is Awesome”
Output: 10 11 4
Initialize count = 0 and a set vowels = {'a','e','i','o','u'}.
Iterate each character ch in S.
Convert ch to lowercase for case-insensitive check.
If ch is in vowels, count += 1.
After iteration return count.
Asked about the difference between delete, drop and truncate. (Learn)
Delete command removes specific rows from a table using a WHERE clause, can be rolled back.
Truncate command deletes all rows from a table instantly; cannot be rolled back in most databases.
Drop command Completely removes the table structure and data from the database.
Interview 2: Last interview: The interview was conducted on the same day as the previous round, around 3:15 PM. It started on time and went smoothly without any delays. This was the final interview round, mainly focused on overall understanding. There was a single interviewer, who was very polite and encouraging. He made the conversation feel natural, asked thoughtful follow-up questions, and appreciated clear explanations. Overall, it was a positive and interactive session.



I first thought of using any sorting algorithm like bubble sort, but that would take O(n²).
Then I realized we can solve this in O(n) by counting the number of 0s and 1s.
Count total 0s in the array fill that many 0s from the start and remaining 1s afterward.
Another optimal approach is to use the two-pointer method:
Keep left = 0 and right = n-1.
Move left forward until it finds 1, and right backward until it finds 0.
Swap them and continue until left >= right.


For the input string 'abcab', the first non-repeating character is ‘c’. As depicted the character ‘a’ repeats at index 3 and character ‘b’ repeats at index 4. Hence we return the character ‘c’ present at index 2.
I first thought of checking every character using two loops (O(n²)), but that’s inefficient.
I optimized it using a HashMap (or array of size 26) to count the frequency of each character.
After counting, I iterated over the string again and returned the first character with count = 1.
If no such character found, return “-1”.
Asked about a real-life example of Abstraction in Object-Oriented Programming. (Learn)
I explained that Abstraction means hiding complex details and showing only the necessary information to the user. I gave the example of Paytm, where the user only sees a simple interface to send or receive money, while all the backend processes like API calls, authentication, and transaction handling are hidden.
Understand that the Critical Section is the part of code where shared resources are accessed, and mutual exclusion must be ensured to prevent race conditions. A Deadlock occurs when two or more processes wait indefinitely for resources held by each other. Revise deadlock prevention, avoidance, and detection methods like the Banker’s Algorithm.

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