public class Solution {
public static int largestRectangleArea(int[] height) {
if(height==null||height.length==0) {
return 0;
}
int[] area = new int [height.length];//放置每一个的矩形面积
for(int i=0;i<height.length;i++) {
int curarea = height[i];
area[i]=height[i];//初始化当前矩形的面积
//向右延伸找到最大面积,z找到比自己高的,然后加上自己的高度;
for(int j=i+1;j<height.length;j++) {
if(height[j]<curarea)
break;
else
area[i]+=curarea;// area[i]+=curarea;
}
//向左延伸
for(int k=i-1;k>=0;k--) {
if(height[k]<curarea)
break;
else
area[i]+=curarea;// area[i]+=curarea;
}
}
//找到area[i]中最大的值;
int max=0;
for(int i=0;i<area.length;i++) {
max= area[i]>max? area[i]:max;
}
return max;
}
public static void main(String[] args) {
int[] arr= {2,1,5,6,2,3,2,2,2,2,2};
int max=largestRectangleArea(arr);
System.out.println(max);
}
}
求柱形图中的最大矩形面积
最新推荐文章于 2024-06-23 17:57:58 发布