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:

  1. The number of elements of the given matrix will not exceed 10,000.

  2. There are at least one 0 in the given matrix.

  3. 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?