题目描述
题解
单调栈
这道题可以完美使用上一道题的方法. 上一道题的场景是柱状图的最大矩形, 这道题编程了二维数组. 如何将二维数组转化为柱状图的形式成了本题的关键.
遍历每一行的数组, 那么正在遍历的这一行与上面的所有行就可以当做是柱状图.
如果某位置字符是1
, 往上有多少连续的1
就是该位置的高度, 如果某位置为0
, 不管上面有多少1
该位置的高度都为0.
就这样求出每一行作为横轴的柱状图的最大矩形面积.
代码中的maxArea()
方法就是84题的代码.
1 | public class lc85 { |