695. 岛屿的最大面积
难度:中等
题目描述
解题思路
标准DFS加剪枝模板题了
/*
* 695. 岛屿的最大面积
* 2020/8/25
*/
public int maxAreaOfIsland(int[][] grid) {
int m = grid.length;
int n = grid[0].length;
boolean [][] visit = new boolean[m][n];
int res = 0;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if(grid[i][j] == 1 && !visit[i][j]) {
int temp = dfsMaxAreaOfIsland(grid,visit,i,j,m,n);
res = Math.max(res, temp);
}
}
}
return res;
}
public int dfsMaxAreaOfIsland(int[][] grid,boolean[][] visit,int i,int j,int m,int n) {
if(i < 0 || i >= m || j < 0 || j >= n || visit[i][j] || grid[i][j] != 1) {
return 0;
}
visit[i][j] = true;
return 1 + dfsMaxAreaOfIsland(grid,visit,i-1,j,m,n)
+ dfsMaxAreaOfIsland(grid,visit,i+1,j,m,n)
+ dfsMaxAreaOfIsland(grid,visit,i,j-1,m,n)
+ dfsMaxAreaOfIsland(grid,visit,i,j+1,m,n);
}