class Solution {
public:
int res,row,col;
Solution(): res(0){}
vector<vector<int>> st;
int dx[4]={-1,1,0,0},dy[4]={0,0,-1,1};
typedef pair<int,int> PII;
void bfs(vector<vector<int>>& g,int i,int j){
int size=0;
queue<PII> q;
st[i][j]=1;
q.push({i,j});
while(q.size()){
auto node=q.front();
q.pop();
size++;
for(int idx=0;idx<4;idx++){
int x=node.first+dx[idx];
int y=node.second+dy[idx];
if(x<0||x>=row||y<0||y>=col||!g[x][y]||st[x][y]) continue;
q.push({x,y});
st[x][y]=1;
}
}
res=max(res,size);
return;
}
int maxAreaOfIsland(vector<vector<int>>& g) {
row=g.size(),col=g[0].size();
st=vector<vector<int>> (row,vector<int> (col,0));
for(int i=0;i<row;i++)
for(int j=0;j<col;j++){
if(g[i][j]&&!st[i][j]) bfs(g,i,j);
}
return res;
}
};
695. 岛屿的最大面积
最新推荐文章于 2024-08-25 17:36:33 发布