Leetcode 695. 岛屿的最大面积(深搜+递归)

在这里插入图片描述
在这里插入图片描述

class Solution {
public:
    int maxn = 0;
    int maxAreaOfIsland(vector<vector<int>>& grid) {    
        int area = 0;
        for(int i = 0;i < grid.size();i++){
            for(int j = 0;j < grid[0].size();j++){
                if(grid[i][j] == 1){
                    area = dfs(i,j,grid);//以该点为中心进行搜索
                    maxn = max(maxn,area);
                }
            }
        }
        return maxn;
    }
    int dfs(int x,int y,vector<vector<int>>& grid){          
        if(x == grid.size() || x < 0) return 0;
        if(y == grid[0].size() || y < 0) return 0;
        if(grid[x][y] == 1){
            grid[x][y] = 0;//搜索过的岛屿直接记为0
            return 1+dfs(x-1,y,grid)+dfs(x+1,y,grid)+dfs(x,y+1,grid)+dfs(x,y-1,grid);
        }
        return 0;
    }
};
发布了25 篇原创文章 · 获赞 25 · 访问量 2182

猜你喜欢

转载自blog.csdn.net/qq_43320728/article/details/104876466
今日推荐