level 1
鹑眠
楼主
class Solution {private: vector<int>ans; int dir[5] = {0,1,0,-1,0}; void dfs(int x,int y,vector<vector<int>>& grid,int& result){ grid[x][y] =0;//非常巧妙,这样省去了标记已访问元素的功夫 for(int i = 0;i < 4;i++){ int xx = x + dir[i]; int yy = y + dir[i + 1]; if(xx>=0&&xx<grid.size()&&yy>=0&&yy<grid.size()){ if(grid[xx][yy]==1){ result++; dfs(xx,yy,grid,result); } else continue; } else continue; } }public: int maxAreaOfIsland(vector<vector<int>>& grid) { for(int i = 0;i < grid.size();i++){ for(int j = 0;j < grid[0].size();j++){ if(grid[i][j]==1){ int result = 1; dfs(i,j,grid,result); ans.push_back(result); } } } if(ans.empty()) return 0; return *max_element(ans.begin(),ans.end()) ; }};
请问错在哪里了
2024年05月10日 15点05分
1
请问错在哪里了