Intermediate · Module 17 · Lesson 4
Grid graphs
Treat matrix cells and neighbor moves as a graph.
15–25 min readLesson 98 of 123
Lesson 98 of 123
1d streakTheory lesson · Step-by-step
Understand Grid graphs
Treat matrix cells and neighbor moves as a graph.
Worked approach
Trace the reasoning step by step
- 1Choose a graph representation and define directedness and weights for Grid graphs.
- 2Initialize visited, distance, parent, color, indegree, or component state.
- 3Remove one frontier item and inspect each outgoing edge.
- 4Update only when an edge proves new or better information.
- 5Repeat from every unvisited vertex when the graph may be disconnected.
Concrete example
Count a 2×2 island of connected 1-cells.
- 1Start at one unvisited land cell.
- 2Visit its four-directional land neighbors.
- 3Mark each once.
All connected land cells form one component.
What must remain true (Loop Invariant)
Every vertex finalized by Grid graphs has the promised reachability, component, order, or distance property; frontier state represents discovered but unfinished work.
Reference pseudocode
1gridGraphs(graph):
2 initialize per-vertex state and frontier
3 seed every required source
4 while frontier is not empty:
5 vertex = removeNext(frontier)
6 for neighbor in graph[vertex]: relax or visit neighbor
7 return distances, order, or components
Verify your trace
- • Write the state after every step.
- • Confirm the invariant still holds.
- • Count visited states to derive complexity.
- • Repeat with an edge-case input.
Cost Model
Complexity & Trade-offs
OperationTimeSpaceWhy
Grid traversal
O(rows × cols)
O(rows × cols)
The bound follows from the number of states visited and the work performed per transition.When to use it
- Networks, dependencies, connectivity, shortest paths, and grid movement.
- Ordering prerequisite-constrained work.
- Grouping reachable or mutually reachable states.
Common mistakes
- Marking visited too late and enqueuing the same vertex repeatedly.
- Ignoring disconnected components.
- Using an algorithm whose weight assumptions do not match the graph.
Practice prompts
- Reproduce the worked Grid graphs example without looking at the trace.
- Change one input condition and explain whether the Grid graphs invariant still holds.
- Implement the approach, derive its cost, and compare it with a straightforward baseline.
Mastery check
Can you derive it instead of memorizing it?
State the invariant before looking at code.
Explain why every transition is safe.
Construct a worst-case input.
Name one alternative and its trade-off.