代码拉取完成,页面将自动刷新
/**
* @param {number[][]} mat
* @return {number[][]}
*/
var updateMatrix = function (mat) {
let row = mat.length, col = mat[0].length
let dist = Array.from(Array(row), item => new Array(col).fill(0))
let visited = Array.from(Array(row), item => new Array(col).fill(0))
let queue = []
// 将所有的 0 添加进初始队列中
for (let i = 0; i < row; ++i) {
for (let j = 0; j < col; ++j) {
if (mat[i][j] == 0) {
queue.push([i, j])
visited[i][j] = true
}
}
}
let dirs = [
[1, 0],
[-1, 0],
[0, 1],
[0, -1],
]
// 广度优先搜索
while (queue.length !== 0) {
let cell = queue.shift()
let i = cell[0], j = cell[1]
for (let dir of dirs) {
let ii = i + dir[0]
let jj = j + dir[1]
if (ii >= 0 && ii < row && jj >= 0 && jj < col && visited[ii][jj] !== true) {
dist[ii][jj] = dist[i][j] + 1
queue.push([ii, jj])
visited[ii][jj] = true
}
}
}
return dist
};
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。