827. 最大人工岛
leetcode-cn.com/problems/ma…
/**
* @param {number[][]} grid
* @return {number}
*/
var largestIsland = function (grid) {
const width = grid.length
const height = grid[0].length
const dirctions = [[1, 0], [0, 1], [-1, 0], [0, -1]]
let maxCount = 0
for (let i = 0
for (let j = 0
if (grid[i][j] === 0) {
let count = 0
const copyGrid = JSON.parse(JSON.stringify(grid))
const stack = [[i, j]]
while (stack.length) {
const curr = stack.shift()
count++
for (let dir = 0
const nowDirX = curr[0] + dirctions[dir][0]
const nowDirY = curr[1] + dirctions[dir][1]
if (nowDirX >= 0 && nowDirX < width && nowDirY >= 0 && nowDirY < height && copyGrid[nowDirX][nowDirY] === 1) {
stack.push([nowDirX, nowDirY])
copyGrid[nowDirX][nowDirY] = -1
}
}
}
maxCount = Math.max(maxCount, count)
}
}
}
return maxCount === 0 ? width * height : maxCount
}