记录刷题——(leetcode——695岛屿的最大面积)

题目:给定一个包含了一些 0 和 1 的非空二维数组 grid 。
一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在水平或者竖直方向上相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。
找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为 0 。)
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/max-area-of-island
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

DFS暴力破解:

int dfs(int row,int col,int** grid, int gridSize, int* gridColSize){
    if(row<0||row>=gridSize||col<0||col>=*gridColSize||grid[row][col]==0){
        return 0;
    }
    grid[row][col]=0;
    int count =1;
    count += dfs(row-1,col,grid, gridSize, gridColSize);
    count += dfs(row+1,col,grid, gridSize, gridColSize);
    count += dfs(row,col-1,grid, gridSize, gridColSize);
    count += dfs(row,col+1,grid, gridSize, gridColSize);
    return count;
}
int maxAreaOfIsland(int** grid, int gridSize, int* gridColSize){
    int result=0;
    for(int i=0;i<gridSize;i++){
        for(int j=0;j< *gridColSize;j++){
            if(grid[i][j]==1){
                const int result_temp = dfs(i,j,grid,gridSize,gridColSize);
                result = (result<result_temp)?result_temp:result;
            }
        }
    }

    return result;
}
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读