Задача с leetcode. Контейнер с наибольшим количеством воды



Дан целочисленный массив height длины n. Нарисовано n вертикальных линий, две конечные точки i-й линии равны (i, 0) и (i, height[i]). Найдите две линии, которые вместе с осью абсцисс образуют контейнер, содержащий наибольшее количество воды.



Верните максимальное количество воды, которое может храниться в контейнере. Обратите внимание, что вы не можете наклонять контейнер.



Пример 1 (картинка):

Ввод: height = [1,8,6,2,5,4,8,3,7]

Вывод: 49

Объяснение: Вышеуказанные вертикальные линии представлены массивом [1,8,6,2,5,4,8,3,7]. В этом случае максимальная площадь воды (синяя секция), которую может содержать контейнер, составляет 49.



Пример 2:

Ввод: height = [1,1]

Вывод: 1



Решение:



def maxWater(height):

first = 0

end = len(height) -1

ans = 0



while first < end: //condition applied

ans = max(ans, min(height[first], height[end]) * (first - end))

if height[first] < height[end]:

first += 1

else:

end -= 1

return ans



# Working Part

height=[5,1,3,4,6]

print(maxWater(height))




Пишите свое решение в комментариях👇



@python_job_interview