695. Max Area of Island

来源:互联网 发布:gt610疯牛病版 知乎 编辑:程序博客网 时间:2024/06/06 02:40

dfs遍历操作,搜索然后覆盖

class Solution {public:    int search(int i,int j, vector<vector<int>>& grid){        int sum=0;        if(i<0||i>=grid.size()||j<0||j>=grid[0].size()||grid[i][j]==0)            return sum;        sum+=1;        grid[i][j] = 0;        if(i-1>=0&&grid[i-1][j]==1)           sum+=search(i-1,j, grid);        if(i+1<grid.size()&&grid[i+1][j]==1)           sum+=search(i+1,j, grid);        if(j-1>=0&&grid[i][j-1]==1)           sum+=search(i,j-1, grid);        if(j+1<grid[0].size()&&grid[i][j+1]==1)           sum+=search(i,j+1, grid);        return sum;    }    int maxAreaOfIsland(vector<vector<int>>& grid) {        int maxArea = 0;        for(int i=0;i<grid.size();i++)        {            for(int j=0;j<grid[0].size();j++)            {                if(grid[i][j]==1){                    int area =search(i,j,grid);                    maxArea = maxArea>area?maxArea:area;                }            }        }        return maxArea;    }};
原创粉丝点击