Menu
CoddyTech

Container With Most Water

Ti viene fornito un elenco height di interi non negativi. La linea i è una parete verticale di altezza height[i] situata nella posizione i. Due linee qualsiasi formano un contenitore con il terreno, che può contenere una quantità d'acqua pari all'altezza della linea più corta moltiplicata per la distanza tra le due linee. Le altre linee non sono d'intralcio. Restituisci la quantità massima d'acqua che una singola coppia di linee può contenere.

Funzione

maxArea(height: integer-array) → integer
heightinteger-array
le altezze delle linee alle posizioni 0, 1, 2 e così via
Restituisceinteger
la quantità massima d'acqua che possono contenere due linee

Vincoli

  • 2 ≤ height.length ≤ 104
  • 0 ≤ height[i] ≤ 104
  • La risposta è al massimo 108, quindi rientra in un intero a 32 bit.

Esempi

Input
height = [3, 7, 2, 5, 4, 7, 3, 6]
Output
36
Spiegazione
Le linee nelle posizioni 1 e 7 hanno altezza 7 e 6 e distano 6, quindi contengono 6 × 6 = 36. Le due linee più alte, i 7 nelle posizioni 1 e 5, contengono solo 7 × 4 = 28, e la coppia più esterna contiene 3 × 7 = 21.

lock icon+15 test nascosti all’invio

challenge icon

Per approfondire

Qui le linee comprese tra le due che scegli vengono ignorate. Se ogni linea fosse invece una barra piena, quanta acqua si raccoglierebbe tra tutte? Riesci a calcolarlo anche in O(n)?

Ripristina il codice
def maxArea(height):
    # Scrivi il codice qui
Casi di test

Caso 1

Caso 2

Input

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

Atteso

36