题目
具体代码
class Solution {
public int islandPerimeter(int[][] grid) {
if(grid == null || grid.length == 0 || grid[0].length == 0){
return 0;
}
for(int i = 0;i < grid.length;i++){
for(int j = 0;j < grid[0].length;j++){
if(grid[i][j] == 1){
return dfs(i,j,grid);
}
}
}
return 0;
}
public int dfs(int i, int j,int[][]grid){
if(i < 0|| j < 0|| i >= grid.length || j >= grid[0].length || grid[i][j] == 0){
return 1;
}
if(grid[i][j]!=1){
return 0;
}
grid[i][j] = 2;
int nums = 0;
nums += dfs(i+1,j,grid);
nums += dfs(i-1,j,grid);
nums += dfs(i,j+1,grid);
nums += dfs(i,j-1,grid);
return nums;
}
}