1 Star 1 Fork 0

Jack-lllll/light-leetcode-js

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
0542.01-matrix.js 1.05 KB
一键复制 编辑 原始数据 按行查看 历史
Jack-lllll 提交于 2022-04-12 14:04 . rename init
/**
* @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
};
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
JavaScript
1
https://gitee.com/QingLight/light-leetcode-js.git
git@gitee.com:QingLight/light-leetcode-js.git
QingLight
light-leetcode-js
light-leetcode-js
master

搜索帮助