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, etc.
Renvoieinteger
la quantité maximale d’eau 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, de hauteurs 7 et 6, sont distantes de 6 et peuvent contenir 6 × 6 = 36. Les deux lignes les plus hautes, les 7 aux positions 1 et 5, peuvent contenir seulement 7 × 4 = 28.
challenge icon

Pour aller plus loin

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

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

Test #1

Test #2

Argument

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

Résultat attendu

36