Menu
CoddyTech

Maximum Product Subarray

Multiplique entre si os elementos de um subarray de nums e retorne o maior produto que qualquer subarray pode gerar. Um subarray contém elementos consecutivos, sem lacunas, e nunca está vazio; portanto, até mesmo um array de valores negativos tem uma resposta. Zeros e valores negativos são permitidos.

Função

maxProduct(nums: integer-array) → integer
numsinteger-array
os números inteiros a serem multiplicados, cada um entre -10 e 10
Retornainteger
o maior produto de um subarray não vazio

Restrições

  • 1 ≤ nums.length ≤ 2 × 104
  • -10 ≤ nums[i] ≤ 10
  • O produto de cada subarray cabe em um inteiro com sinal de 32 bits.

Exemplos

Entrada
nums = [2, -5, 3, -2, 0, 4]
Saída
60
Explicação
Os dois números negativos se anulam: 2 × -5 × 3 × -2 = 60. O 0 divide o array em dois, e o 4 do outro lado não consegue superar 60.
challenge icon

Para ir além

Como você também informaria onde o melhor subarray começa e termina, ainda em tempo O(n) e espaço O(1)?

Redefinir código
def maxProduct(nums):
    # Escreva o código aqui

Teste #1

Teste #2

Teste #3

Argumento

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

Saída Esperada

60