🔁 Day 8 of #90DaysOfDSA – A Day of Solid Revisions

Hey everyone! 👋
Today marks Day 8 of my #90DaysOfDSA challenge. Rather than tackling brand-new problems, I decided to take a step back and revise some key LeetCode classics that are frequently asked in interviews and fundamental to building strong problem-solving skills.
Revisiting problems isn’t just about redoing old work—it’s about recognizing patterns, refining logic, and deepening intuition. Here’s a breakdown of the problems I revised today:
🧩 1. Container With Most Water
🔹 Concept:
Given an array of heights, find the two lines that, along with the x-axis, form a container that holds the most water.
✅ Key Learning:
Utilized the two-pointer approach.
Moved the pointer with the shorter height to try and increase the area.
Achieved O(n) time complexity.
🔧 Why This Matters:
This problem sharpens your ability to reason about greedy decisions and pointer movement—a pattern applicable in many array-based problems.
🧩 2. Longest Substring Without Repeating Characters (Revision)
🔹 Concept:
Find the length of the longest substring without repeating characters.
✅ Key Learning:
Applied the sliding window technique.
Used a hash set to track unique characters in the current window.
Achieved O(n) complexity.
🔧 Why This Matters:
It's a perfect example of how to use sliding windows to efficiently track sequences while minimizing redundant checks.
🧩 3. Palindrome Check (Revision)
🔹 Concept:
Check if a given string is a palindrome, considering only alphanumeric characters and ignoring case.
✅ Key Learning:
Cleaned the input using
isalnum()
andlower()
.Compared characters from both ends using two pointers.
🔧 Why This Matters:
This is a common question to test your understanding of string manipulation and pointer control in edge cases.
🧩 4. Two Sum (Revision)
🔹 Concept:
Find two numbers in an array that add up to a specific target.
✅ Key Learning:
Used a hash map to store previously seen numbers and their indices.
Got the solution in O(n) time complexity.
🔧 Why This Matters:
This is a must-know problem, not just for interviews but also as a gateway to hash-based lookups and map usage.
🧠 Final Thoughts
Today’s focus was on mastery, not novelty. By revisiting problems I’ve already solved, I:
Reinforced key problem-solving patterns: two pointers, sliding window, and hashing.
Sharpened my code clarity and reduced unnecessary logic.
Gained confidence in my ability to handle foundational DSA problems under pressure.
📂 All Code: Day 8 GitHub Repo
🔜 What’s Next?
Tomorrow, I’ll resume tackling fresh problems. But today, I’m glad I took the time to slow down and solidify my base. DSA is not just about solving new problems—it’s about doing the basics better every day.
Let’s keep going! 💪
#90DaysOfDSA #DSA #Python #Leetcode #100DaysOfCode #TechJourney
Subscribe to my newsletter
Read articles from Piyush Kumar directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Piyush Kumar
Piyush Kumar
Hey there! I’m Piyush Kumar, a curious mind on a mission to master Data Structures & Algorithms — one problem at a time. I’m not just solving questions; I’m building habits, debugging my thinking, and documenting the highs and lows of my coding grind. Whether it’s arrays at midnight, graph theory before coffee, or that satisfying “AC” moment after 17 failed attempts — I’m sharing it all openly. 📚 Currently on a 90-day DSA challenge, I post daily blogs and code logs that unpack: Real-world problem-solving strategies Patterns and techniques I learn (and unlearn) Honest reflections on growth, failure, and consistency Along the way, I’m also exploring how to apply AI to meaningful problems — because I believe in learning out loud and building in public. Let’s connect if you’re into: Open learning journeys 🚀 Problem-solving and pattern recognition 🧠 Building cool things with code ⚙️ ⚡ Follow along and let’s decode DSA — together!