---
round: 1
ticket_no: 25
source_no: 1
slug: container-with-most-water
topic: Two Pointers
difficulty: Medium
leetcode_id: 11
attempted: true
score: 2
verdict: partial
reviewed_at: 2026-09-12
---

# Билет 25 — Container With Most Water

## Условие (как предъявлено)

Дан массив `height` длины `n`. Каждая `height[i]` — высота вертикальной линии в точке `i`. Нужно найти две линии, которые вместе с осью X образуют контейнер с максимальным количеством воды. Площадь = `min(height[i], height[j]) * (j - i)`, где `i < j`.

```
Input:  height = [1,8,6,2,5,4,8,3,7]  →  49
Input:  height = [1,1]                 →  1
```

Constraints: `2 <= n <= 10^5`, `0 <= height[i] <= 10^4`.

## Ответ

> Здесь мы создаём два указателя слева и справа и начинаем их сужать по следующему принципу. Мы сравниваем левую и правую границу. Вот их у нас уже есть, ну, кандидат на площадь с такой левой и правой границей. Вот и дальше мы смотрим, кто из них выше, то есть кто из них ниже. Точнее, тот, который ниже, мы эту границу двигаем и проверяем, у нас тут улучшается или не улучшается. То есть мы запоминаем вот эту лучшую комбинацию. То есть мы, например, первая какая-то нас дала какую-то площадь, да, дальше мы меньшую границу сдвинули, посмотрели, а тут нормально или нет, улучшилось или нет. Если нет, идём, ну, короче, идём дальше. Итак, пока не встретимся с этой границей. То есть мы всегда меньшую планочку двигаем, двигаем, двигаем, двигаем и каждый раз площади мы сравниваем. Ну и, соответственно, самую большую мы запомнили, и это будет наш результат.

## Разбор

**Что верно:** два указателя с краёв, движение меньшей стороны и максимум площади по пути — полностью верное решение; названо и обоснование, почему двигать нужно именно меньшую высоту — это главное, что проверяют на интервью.

**Что упущено и ошибки:** не названа сложность O(n) / O(1) и не сказано, почему это O(n), а не O(n²); граничные случаи (n = 2, нулевые высоты) не разобраны.

**Эталонная идея:** l = 0, r = n - 1; area = [height[l], height[r]].min * (r - l); обновить max; сдвинуть указатель со стороны меньшей высоты.

**Сложность:** время O(n), память O(1)

**Критерии:** идея ✅ · структура данных ✅ · сложность ❌ · граничные случаи ⚠️


**Разбор задачи:** [`../../algo-solutions/01-must-have/01-two-pointers/01-container-with-most-water.md`](../../algo-solutions/01-must-have/01-two-pointers/01-container-with-most-water.md)
