Tip 1: Always understand the problem clearly first, then try to solve at least half of it on your own. This helps build logical thinking and confidence in problem-solving.
Tip 2: Practice DSA consistently for 2–3 hours every day. In the beginning, it may feel challenging, but regular practice makes concepts easier and improves speed over time.
Tip 3: Along with DSA, having strong development skills, good knowledge of core CS subjects, contributions to open-source projects, and clear communication creates a strong overall profile and increases your chances of cracking interviews.
Tip 1: Include real-time projects, relevant certifications, and strong coding profiles on platforms. These demonstrate your practical skills and consistency in learning.
Tip 2: Previous internship experience or open-source contributions add significant value to your resume. Only mention skills you are confident in. If a skill listed in the job description is unfamiliar to you, make sure to understand it well, as being unable to answer questions on it can create a negative impression. Even for team projects listed on your resume, clearly understand your contribution and have a basic understanding of the overall project flow and tech stack.
The first round was an online assessment conducted in the college computer labs. Candidates were allowed to choose either Java or C++, and the questions were based on the selected language. I chose Java, so all MCQs and coding questions were in Java. The test consisted of MCQs, SQL queries, and coding questions. The difficulty level was medium to hard. The test was conducted during the daytime, from around 11:00 AM to 12:00 PM.



Here subset sum means sum of all elements of a subset of 'nums'. A subset of 'nums' is an array formed by removing some (possibly zero or all) elements of 'nums'.
Input: 'nums' = [1,2]
Output: 0 1 2 3
Explanation:
Following are the subset sums:
0 (by considering empty subset)
1
2
1+2 = 3
So, subset sum are [0,1,2,3].
This can be solved using recursion (a brute-force approach). However, I identified it as a DP problem where each element can either be chosen or not chosen (pick / not pick). A 2D array (DP table) is defined to track whether a target sum can be formed using the first n elements, using pick and not-pick choices.
The other two coding questions were of medium difficulty—one based on strings and the other on linked lists. They tested basic operations and problem-solving skills, but I do not recall the exact problem statements.
The interview was conducted during the daytime and took place 2–3 hours after the shortlisting results of the online assessment were announced. Shortlisted candidates were informed on the same day, and all remaining interview rounds were conducted that day as well.



Input:
'num1' : 1 -> 2 -> 3 -> NULL
'num2' : 4 -> 5 -> 6 -> NULL
Output: 5 -> 7 -> 9 -> NULL
Explanation: 'num1' represents the number 321 and 'num2' represents 654. Their sum is 975.
I used a dummy node to start the result list and maintained a carry variable. I traversed both linked lists together, added the values along with the carry, and created new nodes for the sum digits. Finally, I returned the list formed after the dummy node. I was also asked about the time and space complexities of the approach I followed.



The given linked list is 1 -> 2 -> 3 -> 4-> NULL. Then the reverse linked list is 4 -> 3 -> 2 -> 1 -> NULL and the head of the reversed linked list will be 4.
Can you solve this problem in O(N) time and O(1) space complexity?
I initialized three pointers—previous, current, and next—to help reverse the links. Then, I traversed the linked list, updating the next pointer of each node to point to the previous node while moving the pointers accordingly until the end of the linked list, and returned the previous node as the new head.
Round 2: This round consisted of Data Structures, CS Fundamentals, and React questions.



Subsequences of string "abc" are: ""(empty string), a, b, c, ab, bc, ac, abc.
Brute Force Approach: All possible subsequences of both strings are generated and compared to find the longest common subsequence. This approach is inefficient.
Recursive & Memoization Approach: I then explained a recursive solution that compares characters from both strings step by step. To optimize it, I introduced memoization by storing the results of overlapping subproblems in a DP table. I wrote the code snippets on paper and also explained the time and space complexity to the interviewer.



Input: Linked List: 1 <-> 2 <-> 2 <-> 2 <-> 3
Output: Modified Linked List: 1 <-> 2 <-> 3
Explanation: We will delete the duplicate values ‘2’ present in the linked list.
After the DSA problems, I was also asked about React fundamentals, Java exception handling, and operating system basics.
This was the managerial round. It mainly focused on discussing my frontend projects, especially those built using the MERN stack, along with my open-source contributions. I was also asked about my achievements, learning journey, and future plans regarding higher studies. Towards the end, I was given the opportunity to ask questions, where I enquired about Yahoo’s work culture and the kind of projects and teams they work on.

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