Skip to content

Commit 327814b

Browse files
committed
0695 Max Area Of Island
1 parent 524d0b1 commit 327814b

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

swift/0695-max-area-of-island.swift

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
class Solution {
2+
func maxAreaOfIsland(_ grid: [[Int]]) -> Int {
3+
let numRows = grid.count
4+
let numColumns = grid[0].count
5+
6+
var grid = grid
7+
var maxArea = 0
8+
9+
for row in 0..<numRows {
10+
for column in 0..<numColumns {
11+
guard grid[row][column] == 1 else { continue }
12+
13+
let area = dfs(row: row, column: column, grid: &grid)
14+
maxArea = max(maxArea, area)
15+
}
16+
}
17+
return maxArea
18+
}
19+
20+
private func dfs(row: Int, column: Int, grid: inout [[Int]]) -> Int {
21+
guard row >= 0,
22+
row < grid.count,
23+
column >= 0,
24+
column < grid[0].count,
25+
grid[row][column] == 1
26+
else { return 0 }
27+
28+
grid[row][column] = 0
29+
30+
return 1 + dfs(row: row + 1, column: column, grid: &grid)
31+
+ dfs(row: row - 1, column: column, grid: &grid)
32+
+ dfs(row: row, column: column + 1, grid: &grid)
33+
+ dfs(row: row, column: column - 1, grid: &grid)
34+
}
35+
}

0 commit comments

Comments
 (0)