leetcode 题目200 numIslands
按照leetcode里一个精选题解的思路写了C语言的版本,感觉算是很简洁的一个版本了。
void area (char** grid, int gridSize, int* gridColSize, int i, int j){
int Colsize = *gridColSize;
if (i<0 || i >= gridSize || j>=Colsize || j<0 || grid[i][j] != '1'){
return;
}
grid[i][j] = 2;
area (grid, gridSize,gridColSize, i+1, j);
area (grid, gridSize,gridColSize, i-1, j);
area (grid, gridSize,gridColSize, i, j+1);
area (grid, gridSize,gridColSize, i, j-1);
return 0;
}
int numIslands(char** grid, int gridSize, int* gridColSize){
int Colsize = *gridColSize;
int num = 0;
for (int i = 0; i<gridSize; i++){
for (int j=0; j< Colsize; j++){
if (grid[i][j]=='1') {
num ++;
area(grid, gridSize, gridColSize, i,j);
}
}
}