题目链接

    遍历每个位置,使用深度优先搜索获取每个岛屿的面积

    访问过的地方置为0,防止重复访问

    1. var maxAreaOfIsland = function(grid) {
    2. let row = grid.length;
    3. let col = grid[0].length;
    4. let res = 0;
    5. for(let i=0;i<row;i++){
    6. for(let j=0;j<col;j++){
    7. res = Math.max(dfs(grid,i,j),res);
    8. }
    9. }
    10. return res;
    11. };
    12. function dfs(grid,r,c){
    13. //超出边界或位置在水上
    14. if(r<0 || r>=grid.length || c<0 || c>=grid[0].length || grid[r][c]===0){
    15. return 0;
    16. }
    17. grid[r][c] = 0;//访问过的置为0,避免重复计算
    18. let res = 1;
    19. //遍历四个方向
    20. for(let item of [[0,1],[0,-1],[1,0],[-1,0]]){
    21. res += dfs(grid,r+item[0],c+item[1]);
    22. }
    23. return res;
    24. }