Day 2: Tracking Our Progress in Problem-Solving
Recap of the Day
Another solid day of problem-solving! Today, I tackled a few medium-level problems. While none were overly difficult, understanding the problem statements took some effort. Once I broke them down, the logic fell into place smoothly.
Problems Solved
✅ Top K Frequent Elements
✅ Product of Array Except Self
✅ Valid Sudoku
✅ Longest Consecutive Sequence
Lessons from Today
Breaking Down the Problem is Key – Some questions seemed tricky at first, but once I deconstructed them into smaller parts, the solution became clear.
Pattern Recognition is Improving – Concepts like hashmaps, sorting, and sliding windows came in handy today.
Understanding the Question Properly is Crucial – Many times, a problem may seem harder than it actually is just because of how it is worded. Taking a step back and truly grasping the requirements saves time and prevents unnecessary complexity.
Avoid Jumping to Code Too Soon – Thinking through edge cases and constraints before writing code leads to cleaner and more efficient solutions.
Consistency is Paying Off – I’m getting faster at identifying optimal approaches, which is a great confidence boost.
Personal Reflections
I’ve started feeling a bit more comfortable with the problems compared to Day 1. It’s still early in the journey, so we’ll see how things evolve.
Solving problems manually still feels a bit odd and challenging, especially since we’ve grown used to relying on Gen-AI tools for quick solutions. However, I’m beginning to understand the importance of manual problem-solving and how it shapes our approach to tackling challenges effectively.
Looking Ahead
Tomorrow, I’ll be focusing on stacks, while continuing with medium-level problems and refining my time complexity analysis skills. The goal is not just to solve problems but to solve them efficiently.
Let’s keep pushing forward! 🚀
📌 Follow along as I take on LeetCode challenges daily!