Menu
CoddyTech

Container With Most Water

Ti viene fornita una lista height di numeri interi non negativi. La linea i è una parete verticale di altezza height[i] situata nella posizione i. Qualsiasi coppia di linee forma un contenitore con il terreno, che può contenere una quantità d’acqua pari all’altezza della linea più bassa 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, con altezze 7 e 6, sono distanti 6 e contengono 6 × 6 = 36. Le due linee più alte, i 7 nelle posizioni 1 e 5, contengono solo 7 × 4 = 28.
challenge icon

Per approfondire

Qui vengono ignorate le linee tra le tue due. Se ogni linea fosse una barra solida, quanta acqua si raccoglierebbe tra tutte? Riusciresti a calcolarlo anche in O(n)?

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

Test #1

Test #2

Argomento

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

Output atteso

36