Menu
CoddyTech

Container With Most Water

Otrzymujesz listę height zawierającą nieujemne liczby całkowite. Linia i to pionowa ściana o wysokości height[i], stojąca na pozycji i. Dowolne dwie linie wraz z podłożem tworzą pojemnik, który mieści tyle wody, ile wynosi wysokość krótszej linii pomnożona przez odległość między tymi dwiema liniami. Pozostałe linie nie przeszkadzają. Zwróć maksymalną ilość wody, jaką może pomieścić jedna para linii.

Funkcja

maxArea(height: integer-array) → integer
heightinteger-array
wysokości linii na pozycjach 0, 1, 2 i tak dalej
Zwracainteger
najwięcej wody, jaką mogą pomieścić dwie linie

Ograniczenia

  • 2 ≤ height.length ≤ 104
  • 0 ≤ height[i] ≤ 104
  • Wynik jest nie większy niż 108, więc mieści się w 32-bitowej liczbie całkowitej.

Przykłady

Wejście
height = [3, 7, 2, 5, 4, 7, 3, 6]
Wyjście
36
Wyjaśnienie
Linie na pozycjach 1 i 7, o wysokościach 7 i 6, są oddalone od siebie o 6 i mieszczą 6 × 6 = 36. Dwie najwyższe linie, te o wysokości 7 na pozycjach 1 i 5, mieszczą tylko 7 × 4 = 28.
challenge icon

Pytanie dodatkowe

Tutaj pomijane są linie między tymi dwiema. Gdyby każda linia była pełnym słupkiem, ile wody zebrałoby się między nimi? Czy potrafisz obliczyć to również w O(n)?

Zresetuj kod
def maxArea(height):
    # Wpisz kod tutaj

Test #1

Test #2

Argument

height = [3, 7, 2, 5, 4, 7, 3, 6]

Oczekiwany wynik

36