1. 程式人生 > >找出面積最大的矩形

找出面積最大的矩形

輸入 .com color app style tps pen 矩形 span

描述

在一個平面圖上,有多個寬度固定為1,高度不同的矩形並列排著,在這些矩形所組成的圖形中,能夠切割出的最大矩形的面積是多少? 數據範圍:0 < 高度 < 100

舉例:高度為2,3,2的三個矩形所組成的圖形,能夠切割出的最大的矩形面積為6。見下圖。

技術分享圖片

輸入

一組正整數,分別用逗號隔開,表示每個矩形的高度

輸出

一個整數,表示組合成的最大的矩形面積

輸入樣例

2,3,2
5,6,7,8,3

復制樣例

輸出樣例

6
20

def solution(line):
    nums=list(map(int,line.split(,)))

    
def getMaxArr(arr,number): s=[] if len(arr)==0: return 0 for i in range(len(arr)): if (i==0 or arr[i-1]<number) and arr[i]>=number: s.append([i,0]) if i==len(arr)-1 or (arr[i-1]>=number and arr[i]<number):
if len(s)>0: if i==len(arr)-1 and arr[i]>=number: s[-1][1]=i+1 else: s[-1][1]=i are=0 for i in s: are=max(are,max(len(arr[i[0]:i[1]])*number,getMaxArr(arr[i[0]:i[1]],number+1)))
return are return getMaxArr(nums,1)

找出面積最大的矩形