A reliable strategy is to understand, plan, then code — never jump straight to typing. A structured approach surfaces edge cases early and communicates your thinking clearly.
A step-by-step framework
text
1. CLARIFY -> restate the problem, ask about inputs, ranges, edge cases
2. EXAMPLES -> work a small example by hand; note edge cases (empty, 1, dups)
3. BRUTE FORCE -> state the obvious solution and its complexity
4. OPTIMIZE -> spot the bottleneck; pick a pattern (hash, two-pointer, DP...)
5. CODE -> write clean, modular code while talking through it
6. TEST -> trace examples, check edges, fix bugs
7. ANALYZE -> state final time and space complexity
