Explore diversas soluciones LeetCode en Python, C++, JavaScript, SQL y TypeScript. Ideal para preparación de entrevistas, aprendizaje y práctica de código en múltiples lenguajes de programación. Enlace de repositorio de Github
Dada una matriz de enteros números
, busque un subarreglo que tenga el producto más grande y devuelva el producto.
Los casos de prueba se generan para que la respuesta encaje en un 32 bitsentero.
Ejemplo 1:
Aporte: números = [2,3,-2,4] Producción: 6 Explicación: [2,3] tiene el producto más grande 6.
Ejemplo 2:
Aporte: números = [-2,0,-1] Producción: 0 Explicación: El resultado no puede ser 2 porque [-2,-1] no es un subarreglo.
Restricciones:
1 <= números.longitud <= 2*10 4
-10 <= números[i] <= 10
- El producto de cualquier subconjunto de
números
es garantizado para encajar en un 32 bits entero.
Pitón
Complejidad de tiempo de #: O(n) Complejidad de espacio de #: O(1) al escribir import List class Solución: def maxProduct(self, nums: List[int]) -> int: if len(nums) == 0: return 0 maxHastaFar, minHastaFar, resultado = nums[0], nums[0], nums[0] para i en rango(1, len(nums)): curr = nums[i] tempMax = max(curr, max(maxSoFar * curr , minHasta ahora * curr)) minHasta ahora = min(curr, min(maxHasta ahora * curr, minHasta ahora * curr)) maxHasta ahora = tempMax resultado = max(resultado, maxHasta ahora) devolver resultado números = [-2, 0, -1] print(Solución ().maxProduct(numeros))