Menu
CoddyTech

Container With Most Water

Otrzymujesz listę height nieujemnych liczb całkowitych. Linia i to pionowa ściana o wysokości height[i], stojąca na pozycji i. Dowolne dwie linie tworzą z podłożem pojemnik, który mieści tyle wody, ile wynosi wysokość niższej linii pomnożona przez odległość między tymi liniami. Pozostałe linie nie przeszkadzają. Zwróć największą 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 mają wysokości 7 i 6 oraz są oddalone od siebie o 6, więc pomieszczą 6 × 6 = 36. Dwie najwyższe linie, siódemki na pozycjach 1 i 5, pomieszczą tylko 7 × 4 = 28, a skrajna para pomieści 3 × 7 = 21.

lock icon+15 ukrytych testów przy wysłaniu

challenge icon

Pytanie dodatkowe

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

Zresetuj kod
def maxArea(height):
    # Napisz kod tutaj
Przypadki testowe

Przypadek 1

Przypadek 2

Wejście

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

Oczekiwane

36