1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| def get_container_water(arr, a, b) h = arr[a] >= arr[b] ? arr[b] : arr[a] h * (b - a).abs end
def max_area(height) start = 0 finish = height.size - 1
max = get_container_water(height, start, finish)
while start < finish if height[start] >= height[finish] finish -= 1 return max if finish <= start else start += 1 return max if start >= finish end
max = get_container_water(height, start, finish) if get_container_water(height, start, finish) > max end
max end
|