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. Dos líneas cualesquiera forman un recipiente con el suelo, y este 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 estorban. 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 tienen alturas de 7 y 6 y están separadas por 6, así que contienen 6 × 6 = 36. Las dos líneas más altas, los 7 en las posiciones 1 y 5, contienen solo 7 × 4 = 28, y el par exterior contiene 3 × 7 = 21.

lock icon+15 pruebas ocultas al enviar

challenge icon

Para ir más allá

Aquí se ignoran las líneas que están entre las dos que elijas. Si todas las líneas fueran barras sólidas, ¿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í
Casos de prueba

Caso 1

Caso 2

Entrada

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

Esperado

36