Найти тему
10,2 тыс подписчиков

Задача с 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))

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

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