leetcode695
这个题实在让我觉得我是个nt, 原因是 我没看清地图数组是int类型的,我一直拿’1’和数组元素比较,提交了好几次,还以为这系统有问题,所以想自己调试一下~~,因此白花了79买leetcode的会员,希望这会员有用吧!~~~~~~
令我高兴的是,这个代码完全是我自己写的,哈哈哈。
class Solution {
public:
void dfs(vector<vector<int>>&grid,int r,int c,int nr,int nc,int& area){
grid[r][c]='0';
area++;
if(r-1>=0&&grid[r-1][c]=='1') dfs(grid,r-1,c,nr,nc,area);
if(r+1<nr&&grid[r+1][c]=='1') dfs(grid,r+1,c,nr,nc,area);
if(c-1>=0&&grid[r][c-1]=='1') dfs(grid,r,c-1,nr,nc,area);
if(c+1<nc&&grid[r][c+1]=='1') dfs(grid,r,c+1,nr,nc,area);
}
int maxAreaOfIsland(vector<vector<int>>& grid) {
int nr=grid.size();
int nc=grid[0].size();
if(!nr) return 0;
int area=0,max=0;
for(int r=0;r!=nr;++r)
{
for(int c=0;c!=nc;++c)
{
if(grid[r][c]=='1')
{ area=0;
dfs(grid,r,c,nr,nc,area);
if(area>max) max=area;
}
}
}
return max;
}
};
END