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
Shortest Path in Binary Matrix000110000STARTENDInput: 3×3 Binary Matrix• 0 = Clear path• 1 = Blocked cell• 8-directional movement allowedBFS finds shortest path:(0,0) → (0,1) → (0,2) → (1,2) → (2,2)Output: 4 (path length)BFS guarantees shortest path in unweighted grids
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
Asked in
Amazon 45 Microsoft 32 Google 28 Facebook 25
87.0K Views
High Frequency
~25 min Avg. Time
1.9K Likes
Ln 1, Col 1
Smart Actions
💡 Explanation
AI Ready
💡 Suggestion Tab to accept Esc to dismiss
// Output will appear here after running code
Code Editor Closed
Click the red button to reopen