Menu
CoddyTech

Container With Most Water

Recibes una lista height de enteros no negativos. La línea i es una pared vertical de altura height[i] situada en la posición i. Cualquier par de líneas forma un recipiente con el suelo, que puede contener tanta agua como la altura de la línea más corta multiplicada por la distancia entre las dos líneas. Las demás líneas no interfieren. Devuelve la máxima cantidad de agua que puede contener un solo par de líneas.

Función

maxArea(height: integer-array) → integer
heightinteger-array
las alturas de las líneas en las posiciones 0, 1, 2 y así sucesivamente
Devuelveinteger
la mayor cantidad de agua que pueden contener dos líneas

Restricciones

  • 2 ≤ height.length ≤ 104
  • 0 ≤ height[i] ≤ 104
  • La respuesta es como máximo 108, así que cabe en un entero de 32 bits.

Ejemplos

Entrada
height = [3, 7, 2, 5, 4, 7, 3, 6]
Salida
36
Explicación
Las líneas en las posiciones 1 y 7, con alturas de 7 y 6, están separadas por 6 y contienen 6 × 6 = 36. Las dos líneas más altas, los 7 en las posiciones 1 y 5, contienen solo 7 × 4 = 28.
challenge icon

Para ir más allá

Aquí se ignoran las líneas que hay entre tus dos líneas. Si cada línea fuera una barra sólida, ¿cuánta agua se acumularía entre todas ellas? ¿Puedes calcularlo también en O(n)?

Restablecer código
def maxArea(height):
    # Escribe el código aquí

Prueba #1

Prueba #2

Argumento

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

Salida Esperada

36