Water collected between towers: Difference between revisions

Content added Content deleted
Line 679: Line 679:
<lang python>def water_collected(tower):
<lang python>def water_collected(tower):
N = len(tower)
N = len(tower)
highest_left = [0] + [max(tower[i] for i in range(n)) for n in range(1,N)]
highest_left = [0] + [max(tower[:n]) for n in range(1,N)]
highest_right = [max(tower[i] for i in range(n,N)) for n in range(1,N)] + [0]
highest_right = [max(tower[n:N]) for n in range(1,N)] + [0]
water_level = [max(min(highest_left[n], highest_right[n]) - tower[n], 0)
water_level = [max(min(highest_left[n], highest_right[n]) - tower[n], 0)
for n in range(N)]
for n in range(N)]