方法:分别得到小每个柱子的高度为高的最大面积,然后选取最大的那个。在分析过程中不必考虑单个柱子在整个柱形图里的最大面积,因为这个最大面积如果 不是以它为高的矩形,那必然是以其它柱子高度为高的矩形,所以只需要求出以每个柱子为最高的矩形面积,再比较即可。
import java.util.Scanner;
public class Main {
public static void fun(int[] lens) {
if (lens == null || lens.length == 0) {
return;
}
int MAX_AREA = 0;
for (int i = 0; i < lens.length; i++) {
int maxArea = maxArea(i, lens);
if(maxArea>MAX_AREA){
MAX_AREA = maxArea;
}
}
System.out.println(MAX_AREA);
}
public static int maxArea(int index, int[] lens) {
int left = index;
int right = index;
int maxArea = 0;
for (int i = index-1; i >= 0; i--) {
if (lens[index] > lens[i]) {
break;
}
left--;