Tip 1: Practice a wide range of DSA problems consistently, focusing on topics like arrays, strings, recursion, and dynamic programming.
Tip 2: Analyse every problem you solve, understand the optimal approach, and revisit mistakes to avoid repeating them.
Tip 3: Do timed practice regularly to improve speed and accuracy under real interview conditions.
Tip 1: Keep your resume focused on strong projects and clearly mention your contribution, tech stack, and impact.
Tip 3: Maintain a clean, one-page format with clear sections and easy readability.
The online assessment was conducted in the evening from 7:00 PM to 8:30 PM, which felt like a typical exam setting and required sustained focus after a full day. I attempted it in a quiet and distraction-free environment to maintain concentration. The test was time-bound and demanded strong problem-solving skills along with careful handling of edge cases. There was no direct interaction with an interviewer during this stage, as it was purely an online coding round.



Step 1: Initially, I thought of generating all substrings and checking uniqueness using a set, but that leads to O(n³) complexity.
Step 2: Then I optimized using the sliding window technique with two pointers.
Step 3: Used a hash set/map to track characters and expanded the window until a duplicate appears.
Step 4: When a duplicate is found, shrink the window from the left until it becomes valid again.
Step 5: Keep updating the maximum length during traversal.



Step 1: Initially thought of checking all paths, but that is exponential.
Step 2: Used recursion with DFS to compute maximum gain from each node.
Step 3: For each node, calculate left and right subtree contributions (ignore negatives).
Step 4: Update global maximum as left + right + node value.
Step 5: Return max gain to parent as node + max(left, right).


Subsequences of string "abc" are: ""(empty string), a, b, c, ab, bc, ac, abc.
Step 1: Started with a recursive solution comparing characters, but it led to overlapping subproblems (exponential time).
Step 2: Introduced memoization to store results of subproblems.
Step 3: Converted to bottom-up DP using a 2D table.
Step 4: If characters match → dp[i][j] = 1 + dp[i-1][j-1]
Step 5: Else → dp[i][j] = max(dp[i-1][j], dp[i][j-1])
Step 6: Final answer stored in dp[n][m].

Here's your problem of the day
Solving this problem will increase your chance to get selected in this company
What does the SQL function NOW() return?