Best c++ solution;its long but easy to understand;happy coding;)

interview-questions
Tags: #<Tag:0x00007f1832e28ed8>

#1

Comment body goes here.
int Solution::maximalRectangle(vector<vector > &A)
{
int flag=1;
int m=A.size();
int n=A[0].size();
vectorhelp;
vectordp;
int max;
int ans=0;
for(int i=0;i<m;i++)
{
dp.push_back(0);
}
for(int i=0;i<n;i++)
{
for(int j=i;j<n;j++)
{
for(int k=0;k<m;k++)
{
for(int p=i;p<=j;p++)
{
if(A[k][p]==0)
{
flag=0;
}
}
if(flag==0)
{
help.push_back(0);
}
else
{
help.push_back(1);
}
flag=1;
}
for(int h=0;h<help.size();h++)
{
if(h==0)
{
if(help[0]==0)
{
dp[0]=0;
}
else
{
dp[0]=1;
}
}
else
{
if(help[h]==0)
{
dp[h]=0;
}
else
{
dp[h]=dp[h-1]+1;
}
}
}
max=max_element(dp.begin(),dp.end());
if(max
(j-i+1)>ans)
{
ans=max*(j-i+1);
}
help.clear();
for(int i=0;i<m;i++)
{
dp[i]=0;
}
}
}
return ans;
}