Shortest Path in Binary Matrix - Problem
Given an n x n binary matrix grid, return the length of the shortest clear path in the matrix. If there is no clear path, return -1.
A clear path in a binary matrix is a path from the top-left cell (i.e., (0, 0)) to the bottom-right cell (i.e., (n - 1, n - 1)) such that:
- All the visited cells of the path are
0. - All the adjacent cells of the path are 8-directionally connected (i.e., they are different and they share an edge or a corner).
The length of a clear path is the number of visited cells of this path.
Input & Output
Example 1 — Basic Path Found
$
Input:
grid = [[0,0,0],[1,1,0],[0,0,0]]
›
Output:
4
💡 Note:
The shortest clear path is (0,0) → (0,1) → (0,2) → (1,2) → (2,2). Path length is 4.
Example 2 — No Path Possible
$
Input:
grid = [[0,1],[1,0]]
›
Output:
-1
💡 Note:
No clear path exists from top-left to bottom-right due to blocking 1s.
Example 3 — Single Cell
$
Input:
grid = [[0]]
›
Output:
1
💡 Note:
Start and end are the same cell (0,0). Path length is 1.
Constraints
- n == grid.length
- n == grid[i].length
- 1 ≤ n ≤ 100
- grid[i][j] is 0 or 1
Visualization
Tap to expand
Understanding the Visualization
1
Input Matrix
Binary matrix with 0s (clear) and 1s (blocked)
2
BFS Exploration
Level-by-level search with 8-directional movement
3
Shortest Path
First path found gives minimum length
Key Takeaway
🎯 Key Insight: BFS naturally finds shortest paths by exploring level-by-level
💡
Explanation
AI Ready
💡 Suggestion
Tab
to accept
Esc
to dismiss
// Output will appear here after running code