求助一下大神,leetcode200题
卡在了[["1"],["1"]]这个数据上
麻烦帮我看下代码哪里有问题
class Solution {
public:
int dx[4] = {0,0,1,-1},dy[4] = {1,-1,0,0};
void dfs(vector<vector<char>>& grid,int i,int j){
int n = grid.size(),m = grid.size();
grid[i][j] = '0';
for(int k = 0;k < 4; k++){
int xx = i + dx[k], yy = j + dy[k];
if(xx >= 0 && xx < n && yy >= 0 && yy < m && grid[xx][yy] == '1'){
dfs(grid,xx,yy);
}
}
}
int numIslands(vector<vector<char>>& grid) {
if(grid.size() == 0 || grid[0].size() == 0) return 0;
int n = grid.size(),m = grid.size();
int ans = 0;//岛屿数量
for(int i = 0;i < n; i++){
for(int j = 0;j < m; j++){
//如果是水就放过,如果是岛屿就dfs一下,重复过程
if(grid[i][j] == '1'){
dfs(grid,i,j);
//dfs完了代表这是一个岛屿
ans++;
}
}
}
return ans;
}
};
卡在了[["1"],["1"]]这个数据上
麻烦帮我看下代码哪里有问题
class Solution {
public:
int dx[4] = {0,0,1,-1},dy[4] = {1,-1,0,0};
void dfs(vector<vector<char>>& grid,int i,int j){
int n = grid.size(),m = grid.size();
grid[i][j] = '0';
for(int k = 0;k < 4; k++){
int xx = i + dx[k], yy = j + dy[k];
if(xx >= 0 && xx < n && yy >= 0 && yy < m && grid[xx][yy] == '1'){
dfs(grid,xx,yy);
}
}
}
int numIslands(vector<vector<char>>& grid) {
if(grid.size() == 0 || grid[0].size() == 0) return 0;
int n = grid.size(),m = grid.size();
int ans = 0;//岛屿数量
for(int i = 0;i < n; i++){
for(int j = 0;j < m; j++){
//如果是水就放过,如果是岛屿就dfs一下,重复过程
if(grid[i][j] == '1'){
dfs(grid,i,j);
//dfs完了代表这是一个岛屿
ans++;
}
}
}
return ans;
}
};