本文共 931 字,大约阅读时间需要 3 分钟。
class Solution { int count = 0; int res = 0; public int maxAreaOfIsland(int[][] grid) { for(int r = 0; r < grid.length; r++) { for(int c = 0; c < grid[0].length; c++) { if(grid[r][c] == 1) { dfs(grid, r, c);//把某一座岛屿遍历了一次 res = Math.max(res, count); count = 0;//在遍历下一次岛屿是要将count清0 } } } return res; } public void dfs(int[][] grid, int r, int c) { if(!(0 <= r && r < grid.length && 0 <= c && c < grid[0].length)) { return; } if(grid[r][c] == 0) { return; } if(grid[r][c] == 2) { return; } grid[r][c] = 2; count++;//说明该处是陆地 +1 dfs(grid, r + 1, c); dfs(grid, r - 1, c); dfs(grid, r, c + 1); dfs(grid, r, c - 1); }}
转载地址:http://blhzi.baihongyu.com/