/**
* 給出n個數字,表明直方圖的條高,直方圖每一條的寬度爲1,請計算直方圖中最大矩形的面積
*
* 上圖是每條寬度爲1, 高度 =[2,1,5,6,2,3].的直方圖
*
* 圖中的陰影部分是該直方圖中面積最大的矩形,面積爲10個單位
* 例如:
* 給出的高度 =[2,1,5,6,2,3],
* 返回10.
*/
public class Main59 {
public static void main(String[] args) {
int[] height = {0,9};
System.out.println(Main59.largestRectangleArea(height));
}
public static int largestRectangleArea(int[] height) {
if (height.length <= 0) {
return 0;
}
int maxArea = 0;
for (int i=0;i<height.length;i++) {
int minLen = height[i];
// maxArea = height[i]*1;
for (int j=i;j<height.length;j++) {
int area = 0;
if (minLen > height[j]) {
area = height[j] * (j-i+1);
minLen = height[j];
}else{
area = minLen* (j-i+1);
}
if (area > maxArea) {
maxArea = area;
}
}
}
return maxArea;
}
}