Menu
CoddyTech

Maximum Product Subarray

Moltiplica tra loro gli elementi di un sottoarray di nums e restituisci il prodotto più grande ottenibile da qualsiasi sottoarray. Un sottoarray contiene elementi consecutivi, senza intervalli, e non è mai vuoto, quindi anche un array di valori negativi ha una risposta. Sono consentiti zeri e valori negativi.

Funzione

maxProduct(nums: integer-array) → integer
numsinteger-array
gli interi da moltiplicare, ciascuno compreso tra -10 e 10
Restituisceinteger
il prodotto più grande di un sottovettore non vuoto

Vincoli

  • 1 ≤ nums.length ≤ 2 × 104
  • -10 ≤ nums[i] ≤ 10
  • Il prodotto di ogni sottovettore rientra in un intero con segno a 32 bit.

Esempi

Input
nums = [2, -5, 3, -2, 0, 4]
Output
60
Spiegazione
I due numeri negativi si annullano: 2 × -5 × 3 × -2 = 60. Lo 0 divide l'array in due, e il 4 dall'altra parte non può superare 60.
challenge icon

Per approfondire

Come indicheresti anche dove inizia e finisce il sottoarray migliore, sempre in tempo O(n) e con spazio O(1)?

Ripristina il codice
def maxProduct(nums):
    # Scrivi il codice qui

Test #1

Test #2

Test #3

Argomento

nums = [2, -5, 3, -2, 0, 4]

Output atteso

60