题目:
分析:
不借助辅助的了,直接将遍历过的改就可以了。
代码:
int f(int i,int j,vector<vector<int>> &g)
{
if(i==-1||i==g.size()||j==-1||j==g[0].size()) return 0;
if(!g[i][j]) return 0;
g[i][j]=0;
return 1+f(i,j-1,g)+f(i,j+1,g)+f(i-1,j,g)+f(i+1,j,g);
}
int main()
{
vector<vector<int>> g;
if(g.size()==0) return 0;
int maxx=0;
for(int i=0;i<g.size();i++)
{
for(int j=0;j<g[0].size();j++)
{
if(g[i][j]==1)
{
int c=f(i,j,g);
maxx=max(maxx,c);
}
}
}
return maxx;
}