岛屿数量
作者:
logos--
,
2023-09-19 16:21:23
,
所有人可见
,
阅读 119
class Solution {
public:
int ans = 0, n, m;
int dd[4][2] = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}};
bool vis[301][301];
vector<vector<char>> a;
inline void dfs(int x, int y) {
for (int t = 0; t < 4; t ++) {
int c = dd[t][0] + x, d = dd[t][1] + y;
if(c < 0 || c >= n || d < 0 || d >= m || vis[c][d] || a[c][d] != '1') continue;
vis[c][d] = true;
dfs(c, d);
}
}
int numIslands(vector<vector<char>>& b) {
a = b;
n = a.size(), m = a[0].size();
for (int i = 0; i < n; i ++) {
for (int j = 0; j < m; j ++) {
if(a[i][j] == '1' && !vis[i][j]) {
++ ans;
vis[i][j] = true;
dfs(i, j);
}
}
}
return ans;
}
};
# ORZ