Systematic Problem Solving Workflow
One of the biggest differences between beginners and experienced problem solvers isn’t intelligence—it’s having a consistent process.
Many candidates jump straight into coding after reading the problem. This often leads to confusion, missed edge cases, bugs, and difficulty explaining their thought process.
Instead, follow a structured workflow for every coding interview question.
Over time, this process becomes second nature and helps you solve problems more efficiently while communicating clearly with the interviewer.
Step 1: Read and Understand the Problem
Don’t rush into solving the problem.
Read it carefully and identify:
- What is the input?
- What is the expected output?
- What exactly are you being asked to find or compute?
- Are there any constraints on the input size?
- Is the input sorted?
- Can there be duplicate values?
- Are negative numbers allowed?
If anything is unclear, ask the interviewer before proceeding.
Understanding the problem correctly is more important than writing code quickly.
Step 2: Think of the Brute Force Solution
Before searching for an optimized approach, explain the simplest possible solution.
Ask yourself:
- How would I solve this without worrying about efficiency?
- What would be the time complexity?
- Why is it too slow?
Starting with brute force demonstrates that you understand the problem before optimizing it.
Step 3: Identify the Pattern
Now determine which problem-solving pattern fits the problem.
Common patterns include:
- Arrays
- Two Pointers
- Sliding Window
- Prefix Sum
- Hash Map
- Binary Search
- Stack
- Queue
- Tree Traversal
- Graph Traversal
- Dynamic Programming
- Greedy Algorithms
- Backtracking
Explain why you chose a particular pattern.
The interviewer is interested in your reasoning, not just the final answer.
Step 4: Explain Your Approach
Before writing code, explain your algorithm.
Cover:
- The overall idea.
- The data structures you’ll use.
- How the algorithm works.
- Why it solves the problem correctly.
A clear explanation helps the interviewer follow your thought process and often leads to useful hints if you’re heading in the wrong direction.
Step 5: Analyze Time and Space Complexity
Discuss complexity before coding.
Consider:
- Number of loops.
- Recursive calls.
- Nested iterations.
- Expensive operations.
Clearly state the worst-case complexity.
Space Complexity
Include:
- Extra arrays.
- Hash maps.
- Sets.
- Queues.
- Stacks.
- Recursive call stack.
Only count additional memory, not the input itself.
Step 6: Write Clean Code
Once you’re confident with the approach, begin coding.
A good structure is:
- Function signature.
- Variable declarations.
- Main logic.
- Edge-case handling.
- Return the result.
Use meaningful variable names instead of single-letter variables whenever possible.
For example:
leftPointerrightPointercurrentSummaxLengthfrequencyMapvisited
Readable code is easier to debug and explain.
Step 7: Consider Edge Cases
Before saying you’re finished, think about situations where your solution could fail.
Common edge cases include:
- Empty input
- Single element
- Duplicate values
- Negative numbers
- Very large inputs
- Already sorted data
- Reverse sorted data
Depending on the problem, consider additional cases.
For example:
Trees
- Empty tree
- Single-node tree
Graphs
- Disconnected graph
- Cycles
Sliding Window
- Window shrinking correctly
- Boundary conditions
Dynamic Programming
- Correct base cases
- Off-by-one errors
Thinking about edge cases shows maturity in problem solving.
Step 8: Dry Run Your Solution
Don’t stop after writing the code.
Take a small example and walk through it step by step.
Track important variables as they change.
Verify that:
- Every condition behaves correctly.
- Pointer movements are correct.
- Loop boundaries are correct.
- The final answer matches the expected output.
A dry run often reveals mistakes before the interviewer notices them.
Step 9: Test Your Solution
Finally, test your code mentally using different types of inputs.
Good test cases include:
- Small inputs
- Typical inputs
- Large inputs
- Edge cases
- Invalid inputs (if applicable)
Try to break your own solution before someone else does.
The Complete Workflow
Read the Problem
│
▼
Understand Requirements
│
▼
Ask Clarifying Questions
│
▼
Think of a Brute Force Solution
│
▼
Identify the Pattern
│
▼
Explain Your Approach
│
▼
Analyze Time & Space Complexity
│
▼
Write Clean Code
│
▼
Check Edge Cases
│
▼
Dry Run the Solution
│
▼
Test and Verify
Common Mistakes
Avoid these mistakes during interviews:
- Starting to code immediately.
- Not asking clarifying questions.
- Ignoring constraints.
- Jumping directly to an optimized solution without explanation.
- Forgetting complexity analysis.
- Missing edge cases.
- Not testing the final solution.
- Writing code that is difficult to read.
Final Advice
Interviewers are evaluating much more than whether your code passes the test cases.
They want to understand how you think.
Following a consistent workflow helps you:
- Stay organized.
- Communicate clearly.
- Reduce mistakes.
- Build confidence.
- Demonstrate strong problem-solving skills.
The more you practice this process, the more natural it becomes. Eventually, you’ll approach every coding interview problem with confidence instead of uncertainty.
Premium Content
Unlock Systematic Problem-Solving Workflow and all premium lessons with a subscription.
From ₹199.99/year — See plans