🔗 leetcode.cn/problems/nu…
题目
- 给一个 n * m 的网格,1 为陆地,0 为水,计算网格中的岛屿数量
思路
代码
class Solution {
public:
vector<vector<int> > dir
void dfs(int x, int y, vector<vector<char>>& grid) {
int xx = grid.size()
int yy = grid[0].size()
if (x < 0 || x >= xx || y < 0 || y >= yy) return
if (grid[x][y] == '0') return
grid[x][y] = '0'
for (int d = 0
dfs(x + dir[d][0], y + dir[d][1], grid)
}
}
int numIslands(vector<vector<char>>& grid) {
dir.push_back({-1, 0})
dir.push_back({1, 0})
dir.push_back({0, 1})
dir.push_back({0, -1})
int count = 0
for (int i = 0
for (int j = 0
if (grid[i][j] == '1') {
count++
dfs(i, j, grid)
}
}
}
return count
}
}