Lesson 1 / 26
A Repeatable Problem-Solving Method
Do not start typing immediately.
Clarify, examples, brute force, optimise, code, test
Strong candidates follow a rhythm: clarify the problem (input sizes, duplicates, negatives, empty input, expected output format), work through examples including edge cases, state a brute-force solution and its complexity, optimise by spotting repeated work, then code cleanly and test by tracing an example and edge cases aloud. Interviewers score communication, problem solving, code quality and testing, not just a correct answer.
Understand, plan, code, test
A calm, repeatable method and a sense of complexity matter as much as knowing algorithms.
A script for the first five minutes
What to say before coding.
1. Restate: "So I need to return indices of two numbers that add up to target."
2. Clarify: "Can there be duplicates? Exactly one answer? Can I use an element twice?"
3. Example + edge cases: [2,7,11,15], 9 -> [0,1]; empty list; negative numbers
4. Brute force: "Check every pair: O(n^2) time, O(1) space."
5. Optimise: "For each x I need target - x; a hash map gives O(1) lookups -> O(n)."
6. Confirm: "Shall I code the O(n) hash map version?"Say the brute force out loud
Even if you know the optimal solution, stating the naive one first shows structured thinking and gives you a fallback.
Quick check: What should you do before writing code?
- Ask for the answer
- Start typing the optimal solution immediately
- Clarify constraints and work through examples
- Write tests for every possible input
Answer
Clarify constraints and work through examples — Understanding first.