给定一组非负整数组成的数组h,代表一组柱状图的高度,其中每个柱子的宽度都为1。 在这组柱状图中找到能组成的最大矩形的面积(如图所示)。 入参h为一个整型数组,代表每个柱子的高度,返回面积的值。
输入包括两行,第一行包含一个整数n(1 ≤ n ≤ 10000) 第二行包括n个整数,表示h数组中的每个值,h_i(1 ≤ h_i ≤ 1,000,000)
输出一个整数,表示最大的矩阵面积。
6 2 1 5 6 2 3
10
借鉴前面的分治法:
var n = readline();
var line = readline().split(' ');
function largestarea(line){
var len = line.length;
var index = line.indexOf(Math.min.apply(null,line).toString());
var value1 = line[index] * len;
if(index!=0){
var value2 = largestarea(line.slice(0, index));
}else{
var value2 = 0;
}
if(index!= len-1){
var value3 = largestarea(line.slice(index+1));
}else{
var value3=0;
}
return Math.max(value1,value2,value3);
}
print(largestarea(line))