Max Area Rectangle in binary matrix

Tue Jun 21 2022 16:19:17 GMT+0000 (Coordinated Universal Time)

Saved by @Ranjan_kumar #c++

```//input arr[n][m];

vector<int>v;
for(int j=0;j<m;j++)
v.push_back(arr[0][j])
int max=MAH(v);

for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
if(arr[i][j]==0)
v[j]=0;
else v[j]=v[j]+arr[i][j];
}
max=max(max,MAH(V));
}

//MAH FUNCTION
vector<int>left;
stack<pair<int,int>>s;
int pseudo_index=-1;
for(int i=0;i<n;i++)
{
if(s.size()==0)
{
left.push_back(pseudo_index);
}
else if(s.size()>0 && s.top().first<arr[i])
{
left.push_back(s.top());
}
else if(s.size()>0 && s.top().first>=arr[i])
{
while(s.size()>0 && s.top().fisrt>=arr[i])
{
s.pop();
}
if(s.size()==0)
left.push_back(s.top().second);
}
s.push(arr[i];)
}
return left;               //NSL completed

vector<int>right;          //NSR doing
stack<pair<int,int>>s2;
int pseudo_index=7;
for(int i=size-1;i>=0;i--)
{
if(s2.size()==0)
{
right.push_back(pseudo_index);
}
else if(s2.size()>0 && s2.top().first<arr[i])
{
right.push_back(s.top());
}
else if(s2.size()>0 && s2.top().first>=arr[i])
{
while(s2.size()>0 && s2.top().fisrt>=arr[i])
{
s2.pop();
}
if(s2.size()==0)
right.push_back(s2.top().second);
}
s2.push(arr[i];)
}
reverse (right.begin(),right.end());
return right;           //NSR completed

for(int i=0;i<size;i++)
{
width[i]=right[i]-left[i]-1;
}
for(int i=0;i<size;i++){
area[i]=arr[i]*width[i];
}
return max of area[i];       //MAH FINAL VALUE```
content_copyCOPY