代码实现(C++):
class Solution {
public:
//深度优先遍历
int dfs(vector<vector<int>> &grid,int i,int j){
if(i>= 0 && i<grid.size() && j>=0 && j<grid[i].size() && grid[i][j]==1){
grid[i][j] = 0;
int num = 1+dfs(grid,i+1,j)+dfs(grid,i-1,j)+dfs(grid,i,j-1)+dfs(grid, i,j+1);
return num;
}
return 0;
}
int maxAreaOfIsland(vector<vector<int>>& grid) {
int rst = 0;
for(int i = 0;i < grid.size();++i)
for(int j = 0;j < grid[i].size();++j){
if(grid[i][j] == 1){
int num = dfs(grid,i,j);
rst = max(num,rst);
}
}
return rst;
}
};