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 Matrix INPUT 0 0 0 1 1 0 0 0 0 Start (0,0) End (2,2) 0 = Clear 1 = Blocked Input Grid: [[0,0,0], [1,1,0], [0,0,0]] ALGORITHM (BFS) 1 Initialize BFS Queue: [(0,0)], dist=1 2 Explore 8 Directions Check all neighbors 3 Track Distance Mark visited, inc dist 4 Return at Target When reach (n-1,n-1) BFS Queue Process: (0,0)-->(0,1)-->(1,2)-->(2,2) FINAL RESULT 0 0 0 1 1 0 0 0 0 Path: (0,0) --> (0,1) --> (1,2) --> (2,2) Path cells OUTPUT 4 Shortest path length: 4 Key Insight: BFS guarantees the shortest path in an unweighted graph. By exploring level by level (all cells at distance d before distance d+1), the first time we reach the target is guaranteed to be via the shortest path. 8-directional movement allows diagonal moves. TutorialsPoint - Shortest Path in Binary Matrix | BFS Approach
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