class Solution {
private:
int res=0, cur_res=0;
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param grid int整型vector<vector<>>
* @return int整型
*/
int maxAreaIsland(vector<vector<int> >& grid) {
// write code here
int m = grid.size();
int n = grid[0].size();
for(int i=0; i<m; i++){
for(int j=0; j<n; j++){
if(grid[i][j] == 1){
cur_res = 0;
dfs(grid, m, n, i, j);
res = max(res, cur_res);
}
}
}
return res;
}
void dfs(vector<vector<int> >& grid, int m, int n,
int x, int y){
if(x<0 || x>=m || y<0 || y>=n){
return;
}
if(grid[x][y] == 0){
return;
}
cur_res += 1;
grid[x][y] = 0;
dfs(grid, m, n, x+1, y);
dfs(grid, m, n, x-1, y);
dfs(grid, m, n, x, y+1);
dfs(grid, m, n, x, y-1);
}
};