1 | 给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。 |
枚举
- 使用类似与前缀和的方式计算每一行从左往右到当前位置时的宽度 $val[i][j]$
- 枚举整个矩阵,在第 $i$ 行第 $j$ 列时,$val[i][j]$ 即为当前行到j的矩形的宽度
- 此时矩形的面积是当前的宽度 $width*1$
- 从 $i$ 行开始枚举矩形的高度,计算该高度下最大宽度与高度的乘积(面积),并更新面积的最大值
1 | class Solution { |
时间复杂度:$O(m^2n)$,空间复杂度:$O(mn)$
单调栈
1 | class Solution { |