Skip to content

Commit eeee61e

Browse files
committed
Time: 47 ms (67.24%), Space: 58.9 MB (80.95%) - LeetHub
1 parent 2110f8d commit eeee61e

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

0542-01-matrix/0542-01-matrix.js

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/**
2+
* @param {number[][]} mat
3+
* @return {number[][]}
4+
*/
5+
var updateMatrix = function (mat) {
6+
let m = mat.length, n = mat[0].length;
7+
let queue = [];
8+
let directions = [[1, 0], [-1, 0], [0, 1], [0, -1]];
9+
for (let i = 0; i < m; i++) {
10+
for (let j = 0; j < n; j++) {
11+
if (mat[i][j] === 0) {
12+
queue.push([i, j]);
13+
} else {
14+
mat[i][j] = -1;
15+
}
16+
}
17+
}
18+
while (queue.length) {
19+
let [x, y] = queue.shift();
20+
for (let [dx, dy] of directions) {
21+
let nx = x + dx, ny = y + dy;
22+
if (nx < 0 || ny < 0 || nx >= m || ny >= n || mat[nx][ny] != -1) continue;
23+
mat[nx][ny] = mat[x][y] + 1;
24+
queue.push([nx, ny]);
25+
}
26+
27+
}
28+
return mat;
29+
};

0 commit comments

Comments
 (0)