#include <leetcode.h>
◆ maximalRectangle()
int leetcode::maximal_rectangle::Solution::maximalRectangle |
( |
vector< vector< char > > & |
matrix | ) |
|
|
static |
在文件 leetcode.cpp 第 8776 行定义.
8777 const int m = matrix.size();
8781 const int n = matrix[0].size();
8782 vector
left(m, vector(n, 0));
8784 for(
int i = 0; i < m; i++) {
8785 for(
int j = 0; j < n; j++) {
8786 if(matrix[i][j] ==
'1') {
8787 left[i][j] = (j == 0 ? 0 :
left[i][j - 1]) + 1;
8793 for(
int j = 0; j < n; j++) {
8795 vector<int>
up(m, 0),
down(m, 0);
8798 for(
int i = 0; i < m; i++) {
8799 while(!stk.empty() &&
left[stk.top()][j] >=
left[i][j]) {
8802 up[i] = stk.empty() ? -1 : stk.top();
8806 for(
int i = m - 1; i >= 0; i--) {
8807 while(!stk.empty() &&
left[stk.top()][j] >=
left[i][j]) {
8810 down[i] = stk.empty() ? m : stk.top();
8814 for(
int i = 0; i < m; i++) {
8815 const int height =
down[i] -
up[i] - 1;
8816 int area = height *
left[i][j];
8817 ret = max(ret, area);
引用了 acwing::acwing1929::down, acwing::acwing1929::left , 以及 acwing::acwing1929::up.
被这些函数引用 leetcode::maximal_rectangle::TEST().
该类的文档由以下文件生成: