01 Matrix(DP)
Given a matrix consists of 0 and 1, find the distance of the nearest 0 for each cell.
The distance between two adjacent cells is 1.
Example 1:
Input:
[[0,0,0],
[0,1,0],
[0,0,0]]
Output:
[[0,0,0],
[0,1,0],
[0,0,0]]Example 2:
Input:
[[0,0,0],
[0,1,0],
[1,1,1]]
Output:
[[0,0,0],
[0,1,0],
[1,2,1]]Note:
The number of elements of the given matrix will not exceed 10,000.
There are at least one 0 in the given matrix.
The cells are adjacent in only four directions: up, down, left and right.
分析
DP
类似数组左右遍历,Matrix先左上,再右下遍历,得到最小的距离,记住这里右下的遍历顺序要反。
之前错误是一次性4个方向遍历
BFS
反向,就是以0为圆心4个方向层层扩展,每次扩展d+1。
Last updated
Was this helpful?