695. 岛屿的最大面积
class Solution { public: int maxAreaOfIsland(vector<vector<int>>& grid) { int hh=grid.size();//行 int ll=grid[0].size();//列 if(hh==0) return 0; int ans=0,res=0; for(int i=0;i<hh;i++) { for(int j=0;j<ll;j++) { if(grid[i][j]==1) { ans=0; dfs(grid,i,j,ans); res=max(res,ans); } } } return res; } void dfs(vector<vector<int>>& grid,int h,int l,int &ans) { int hh=grid.size();//行 int ll=grid[0].size();//列 grid[h][l]=0;//走过就变成0,防止下次还走 ans++;//找到符合的加一个 //垂直方向上下左右走,且判断搜的时候会不会出边界 if(h-1>=0&&grid[h-1][l]==1) //行-1,向上搜 dfs(grid,h-1,l,ans); if(h+1<hh&&grid[h+1][l]==1) //行+1,向下搜 dfs(grid,h+1,l,ans); if(l-1>=0&&grid[h][l-1]==1) //列-1,向左走 dfs(grid,h,l-1,ans); if(l+1<ll&&grid[h][l+1]==1) //列+1,向右走 dfs(grid,h,l+1,ans); } };