class Solution public int numIslandsvectorvectorchar& grid int nr = gridsize; if !nr return 0; int nc = grid0size; int num_islands = 0; for int r = 0; r nr; r++
class Solution { func numIslands(_ grid: [[Character]]) -> Int { var grid = grid let nr = grid.count if nr == 0 { return 0 } let nc = grid[0].count var numIslands = 0
for r in 0..<nr {
for c in 0..<nc {
if grid[r][c] == "1" {
numIslands += 1
grid[r][c] = "0"
var queue = [(r, c)]
while !queue.isEmpty {
let (row, col) = queue.removeFirst()
if row - 1 >= 0 && grid[row-1][col] == "1" {
queue.append((row-1, col))
grid[row-1][col] = "0"
}
if row + 1 < nr && grid[row+1][col] == "1" {
queue.append((row+1, col))
grid[row+1][col] = "0"
}
if col - 1 >= 0 && grid[row][col-1] == "1" {
queue.append((row, col-1))
grid[row][col-1] = "0"
}
if col + 1 < nc && grid[row][col+1] == "1" {
queue.append((row, col+1))
grid[row][col+1] = "0"
}
}
}
}
}
return numIslands
}
原文地址: https://www.cveoy.top/t/topic/itUV 著作权归作者所有。请勿转载和采集!