首页 > 其他 > 详细

[LeetCode]695. 岛屿的最大面积(DFS/BFS)

时间:2019-07-24 23:07:56      阅读:133      评论:0      收藏:0      [点我收藏+]

题目

给定一个包含了一些 0 和 1的非空二维数组?grid?, 一个?岛屿?是由四个方向 (水平或垂直) 的?1?(代表土地) 构成的组合。你可以假设二维矩阵的四个边缘都被水包围着。

找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为0。)

题解

dis/bfs的裸裸裸题。
自己搜索练的太少,以后要多练!

todo

bfs版

代码(dfs)

class Solution {
    public int maxAreaOfIsland(int[][] grid) {
        int maxArea=0;
        
        if(grid==null){
            return 0;
        }
        
        for(int i=0;i<grid.length;++i){
            for(int j=0;j<grid[0].length;++j){
                if(grid[i][j]==1){
                    int area=dfs(grid,i,j);
                    maxArea=area>maxArea?area:maxArea;
                }
            }
        }
        return maxArea;
    }
    
    public int dfs(int[][] grid,int i,int j){
        int area=1;
        grid[i][j]=0;
        int[] dx={0,0,-1,1};
        int[] dy={-1,1,0,0};
        for(int m=0;m<4;++m){
            if(vaild(grid,i+dx[m],j+dy[m])&&grid[i+dx[m]][j+dy[m]]==1){
                area+=dfs(grid,i+dx[m],j+dy[m]);
            }
        }
        return area;
    }
    
    public boolean vaild(int[][] grid,int i,int j){
        return i>=0&&i<grid.length&&j>=0&&j<grid[0].length;
    }
}

[LeetCode]695. 岛屿的最大面积(DFS/BFS)

原文:https://www.cnblogs.com/coding-gaga/p/11241283.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!