Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Largest Rectangle in a Histogram by mehWincenty
def counth(d, n):
r = 0
m = 0
for i in d:
if i >= n:
r += 1
else:
r = 0
if r > m:
m = r
return m
def largest_histogram(histogram):
m = 0
a = 0
for i in range(1, max(histogram)+1):
a = i*counth(histogram, i)
if a > m:
m = a
return m
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!")
Nov. 11, 2016