0542. 01 Matrix¶
Given an m x n binary matrix mat, return the distance of the nearest 0 for each cell.
The distance between two adjacent cells is 1.
Example 1:

Input: mat = [[0,0,0],[0,1,0],[0,0,0]]
Output: [[0,0,0],[0,1,0],[0,0,0]]
Example 2:

Input: mat = [[0,0,0],[0,1,0],[1,1,1]]
Output: [[0,0,0],[0,1,0],[1,2,1]]
Constraints:
m == mat.lengthn == mat[i].length1 <= m, n <= 1041 <= m * n <= 104mat[i][j]is either0or1.- There is at least one
0inmat.
Analysis¶
Using BFS to find the shortest path for each point¶
Compare to single source BFS, we can regard each "0" as a source and run the search from each point. BFS will guarantee shortest path, so we can return the search results immediately after each search.
- Scan through all the "0" and insert their coordinates into the search queue.
Last update:
April 1, 2022