I am building this repository to develop strong problem-solving skills by focusing on intuition, pattern recognition, and reusable techniques, rather than memorizing solutions.
-
I do not jump directly to the optimal solution.
-
I always follow the learning path:
Brute Force → Pattern Identification → Optimization
-
I avoid looking at full solutions unless absolutely necessary.
-
I focus on understanding why a solution works.
-
I first identify which category the problem belongs to (e.g., Sliding Window, Graphs, DP, etc.)
-
I look for key signals:
- Contiguous subarray → Sliding Window
- Traversal → Graph/Tree
- Choices/Overlapping subproblems → DP
- I start with a brute-force approach to understand the problem.
- Then I try to identify patterns or optimizations.
- I refine the solution step by step instead of jumping to the final answer.
-
I aim to improve from brute-force complexity to an optimal one.
-
I always ask:
- Can this be done in O(n)?
- Can I reduce space usage?
- Empty input
- Single element cases
- Boundary conditions
- Large inputs / overflow scenarios
For every problem, my goal is to:
- Re-derive the solution from scratch
- Understand the underlying pattern deeply
- Be able to solve similar problems in the future
To build a repository that reflects:
- Clear thinking
- Strong fundamentals
- Interview-level problem-solving ability
“I don’t aim to remember solutions. I aim to understand patterns so deeply that I can rebuild solutions from scratch.”