Skip to content

Commit 7a9ef36

Browse files
Added solution
1 parent 9f4d9f5 commit 7a9ef36

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

maximal_rectangle.cpp

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
class Solution {
2+
public:
3+
int dfs(vector<vector<char>>& matrix, int i, int j){
4+
if(i < 0 or j < 0 or i >= matrix.size() or j >= matrix[i].size() or matrix[i][j] == '0')
5+
return 0;
6+
else{
7+
matrix[i][j] = '0';
8+
return 1 + dfs(matrix, i-1, j) + dfs(matrix, i+1, j) + dfs(matrix, i, j + 1) + dfs(matrix, i, j - 1);
9+
}
10+
}
11+
12+
int maximalRectangle(vector<vector<char>>& matrix) {
13+
if(matrix.size() == 0) return 0;
14+
auto curr_area = 0, max_area = INT_MIN;
15+
16+
for(auto i = 0; i < matrix.size(); i++){
17+
for(auto j = 0; j < matrix[i].size(); j++){
18+
if(matrix[i][j] == '1'){
19+
curr_area = dfs(matrix, i, j);
20+
max_area = max(max_area, curr_area);
21+
}
22+
}
23+
}
24+
return max_area;
25+
}
26+
};

0 commit comments

Comments
 (0)