Day 5: A Slow Day, But Still Learning

Tennis Kumar CTennis Kumar C
2 min read

Today wasn’t my most productive day. The day started with an early morning interview call, and honestly, it didn’t go as expected. That set a dull tone for the rest of the day. I found myself distracted and not fully in the zone.

Still, I managed to solve two medium-level LeetCode problems:

1️⃣ Generate Parentheses (Medium)

This problem required generating all valid combinations of well-formed parentheses for a given n. Initially, I thought of a brute-force approach, but it quickly became apparent that a backtracking solution was the best way to tackle it efficiently.

Key learnings:

  • Backtracking helps explore all possible combinations while pruning invalid ones early.

  • The recursive approach with an open-close counter simplifies the logic significantly.

2️⃣ Daily Temperatures (Medium)

Given an array of daily temperatures, the task was to find out how many days one has to wait for a warmer temperature. My first thought was a brute-force approach (checking every future day), but that was inefficient. The optimal approach used monotonic stacks.

Key learnings:

  • The monotonic decreasing stack stores indices of previous days, making it easy to determine when a warmer day occurs.

  • The stack approach optimizes the solution to O(n) time complexity, instead of the naive O(n²).

  • This problem reinforced the importance of choosing the right data structure for optimization.

Even though today was slower than I wanted, I still learned valuable concepts. I wasn’t fully satisfied with how small and elegant the solutions were at first, but diving deeper into why they work made me appreciate them even more.

Tomorrow, I plan to push harder and get back on track! 💪

0
Subscribe to my newsletter

Read articles from Tennis Kumar C directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Tennis Kumar C
Tennis Kumar C