Menu
CoddyTech

Container With Most Water

On vous donne une liste height d’entiers non négatifs. La ligne i est un mur vertical de hauteur height[i] situé à la position i. Deux lignes quelconques forment un récipient avec le sol, qui peut contenir une quantité d’eau égale à la hauteur de la ligne la plus courte multipliée par la distance entre les deux lignes. Les autres lignes ne gênent pas. Renvoyez la quantité maximale d’eau qu’une seule paire de lignes peut contenir.

Fonction

maxArea(height: integer-array) → integer
heightinteger-array
les hauteurs des lignes aux positions 0, 1, 2, et ainsi de suite
Renvoieinteger
la quantité d’eau maximale que deux lignes peuvent contenir

Contraintes

  • 2 ≤ height.length ≤ 104
  • 0 ≤ height[i] ≤ 104
  • La réponse est au plus égale à 108, elle tient donc dans un entier de 32 bits.

Exemples

Entrée
height = [3, 7, 2, 5, 4, 7, 3, 6]
Sortie
36
Explication
Les lignes aux positions 1 et 7 ont des hauteurs de 7 et 6 et sont séparées de 6 unités ; elles contiennent donc 6 × 6 = 36. Les deux lignes les plus hautes, les 7 aux positions 1 et 5, ne contiennent que 7 × 4 = 28, et la paire extérieure contient 3 × 7 = 21.

lock icon+15 tests cachés à la soumission

challenge icon

Pour aller plus loin

Ici, les lignes situées entre les deux que tu choisis sont ignorées. Si chaque ligne était plutôt une barre pleine, quelle quantité d’eau s’accumulerait entre toutes ces barres ? Peux-tu aussi calculer cela en O(n) ?

Réinitialiser le code
def maxArea(height):
    # Écrivez le code ici
Cas de test

Cas 1

Cas 2

Entrée

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

Attendu

36