Largest Rectangle in a Histogram[]
阿新 • • 發佈:2018-11-19
思路: 按照 高
從1到max(histogram)
逐次查詢最大面積
- 高為1 時…
- 高為2 時…
- …
# Largest Rectangle in a Histogram # def largest_histogram(histogram): max_area=max(histogram) for x in range(1,max(histogram)): count_1=0 for y in histogram: if y>=x: count_1+=1 if max_area<x*count_1 : max_area=x*count_1 else: count_1=0 return max_area if __name__ == "__main__": #These "asserts" using only for self-checking and not necessary for auto-testing assert largest_histogram([5]) == 5, "one is always the biggest" assert largest_histogram([5, 3]) == 6, "two are smallest X 2" assert largest_histogram([1, 1, 4, 1]) == 4, "vertical" assert largest_histogram([1, 1, 3, 1]) == 4, "horizontal" assert largest_histogram([2, 1, 4, 5, 1, 3, 3]) == 8, "complex" print("Done! Go check it!")