# 柱状图中最大的矩形
给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。
求在该柱状图中,能够勾勒出来的矩形的最大面积。

以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]。

图中阴影部分为所能勾勒出的最大矩形面积,其面积为 10 个单位。
示例:
输入: [2,1,5,6,2,3]以下程序实现了这一功能,请你填补空白处内容: ```java class Solution { public int largestRectangleArea(int[] heights) { int length = heights.length; if (length == 0) { return 0; } int maxSize = 0; for (int i = 0; i < length; i++) { int nowHeight = heights[i]; int nowWidth = 0; for (int j = i; j < length; j++) { ___________________; nowWidth++; if (maxSize < nowHeight * nowWidth) { maxSize = nowHeight * nowWidth; } } } return maxSize; } } ``` ## template ```java class Solution { public int largestRectangleArea(int[] heights) { int length = heights.length; if (length == 0) { return 0; } int maxSize = 0; for (int i = 0; i < length; i++) { int nowHeight = heights[i]; int nowWidth = 0; for (int j = i; j < length; j++) { if (heights[j] < nowHeight) { nowHeight = heights[j]; } nowWidth++; if (maxSize < nowHeight * nowWidth) { maxSize = nowHeight * nowWidth; } } } return maxSize; } } ``` ## 答案 ```java if (heights[j] < nowHeight) { nowHeight = heights[j]; } ``` ## 选项 ### A ```java if (heights[j] > nowHeight) { nowHeight = heights[j]; } ``` ### B ```java if (heights[j] >= nowHeight) { nowHeight = heights[j] + 1; } ``` ### C ```java if (heights[j] < nowHeight) { nowHeight = heights[j] + 1; } ```
输出: 10