Simple Overlap Method
Beginner technique
The simple overlap method is the most fundamental and widely applicable technique in nonogram solving. It lets you fill cells with certainty by finding positions that must be covered, regardless of how the clue is actually arranged in the line.
The concept
For any run in a clue, there is a leftmost possible position (sliding it as far left as possible) and a rightmost possible position (sliding it as far right as possible). Any cell covered by both extremes is guaranteed to be filled.
Step-by-step walkthrough
Consider a 10-cell row with clue 7:
- Leftmost: cells 1–7 filled (run starts at cell 1)
- Rightmost: cells 4–10 filled (run starts at cell 4)
- Overlap: cells 4–7 must be filled (4 cells certain)
The slack is 10 - 7 = 3, meaning there are 3 "wiggle" cells. The overlap is always run_length - slack cells. When slack is zero, the entire run is determined immediately.
Multi-run example
Row of length 12, clue 3 4. Minimum space: 3 + 1 + 4 = 8, slack = 4.
- Run 1 (length 3): leftmost cells 1–3, rightmost cells 5–7. Overlap: none (3 - 4 = negative).
- Run 2 (length 4): leftmost cells 5–8, rightmost cells 9–12. Overlap: none.
No overlap here — the slack is too large. But try clue 5 4 in the same 12-cell row (minimum: 5 + 1 + 4 = 10, slack = 2):
- Run 1 (length 5): leftmost cells 1–5, rightmost cells 3–7. Overlap: cells 3–5 (3 cells filled).
- Run 2 (length 4): leftmost cells 7–10, rightmost cells 9–12. Overlap: cells 9–10 (2 cells filled).
Using existing filled cells
The power of simple overlap multiplies once some cells are already known. If a cell is marked empty, no run can span it. This effectively splits the line into independent segments, each of which you can apply overlap to separately.
If a cell is already filled, the leftmost and rightmost positions must both cover it — further reducing the possible positions and increasing the overlap.
When to apply it
- At the start of every puzzle — scan all rows and columns for lines with low slack.
- After any cell is determined (filled or empty) — re-apply to every line that crosses that cell.
- Any time a new run of filled cells appears adjacent to an empty cell or edge.
Related techniques
- Edge deduction — constrain runs that touch the grid boundary
- Block capping — seal completed runs
- Clue exhaustion — clear remaining unknowns once fills are complete