Number of Islands LeetCode solution in C++

1
class Solution {
2
public:
3
void calculate(vector<vector<char>> &grid, int i, int j) {
4
if (i >= grid.size() || j >= grid[i].size() || i < 0 || j < 0) return;
5

6
if (grid[i][j] == '0') return;
7

8
grid[i][j] = '0';
9
calculate(grid, i, j - 1);
10
calculate(grid, i - 1, j);
11
calculate(grid, i, j + 1);
12
calculate(grid, i + 1, j);
13
}
14

15
int numIslands(vector<vector<char>> &grid) {
16
int ans = 0;
17

18
for (int i = 0; i < grid.size(); i++) {
19
for (int j = 0; j < grid[0].size(); j++) {
20
if (grid[i][j] == '0')
21
continue;
22

23
else if (grid[i][j] == '1') {
24
ans++;
25
calculate(grid, i, j);
26
}
27
}
28
}
29
return ans;
30
}
31
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0