题解 | #岛屿数量#
岛屿数量
https://www.nowcoder.com/practice/0c9664d1554e466aa107d899418e814e
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 判断岛屿数量
* @param grid char字符型二维数组
* @param gridRowLen int grid数组行数
* @param gridColLen int* grid数组列数
* @return int整型
*/
void dfs(char** grid, int gridRowLen, int* gridColLen, int i, int j ){
if(i<0||j<0||i>=gridRowLen||j>=*gridColLen||grid[i][j]=='0')
return;
else{
grid[i][j] = '0';
printf("%d,%d\n",i,j);
dfs(grid,gridRowLen,gridColLen,i-1,j);
dfs(grid,gridRowLen,gridColLen,i+1,j);
dfs(grid,gridRowLen,gridColLen,i,j-1);
dfs(grid,gridRowLen,gridColLen,i,j+1);
}
}
int solve(char** grid, int gridRowLen, int* gridColLen ) {
// write code here
int ans = 0;
for(int i = 0;i < gridRowLen;i++){
for(int j = 0;j < *gridColLen;j++){
if(grid[i][j] == '1'){
ans++;
dfs(grid,gridRowLen,gridColLen,i,j);
}
}
}
return ans;
}
查看29道真题和解析