programación dinámica Leetcode_ _152. Producto de la máxima subsecuencia

152. El producto de la secuencia máximo

Aquí Insertar imagen Descripción
Idea:
en suma, es decir, el producto de la parte superior máxima subsecuencia n dividido en los tres casos siguientes:

  1. Antes de n - un producto del producto de un mínimo secuencia * A [n] máximo

  2. Antes de n - un producto del producto máximo subsecuencia * A [n] máximo

  3. Antes de n - producto * secuencia A [n] de 1 bit y el producto del producto máximo de la más pequeña sub-secuencia no es el máximo, y A [n] en sí es el más grande.
    Respuestas 1
    Respuestas 2

class Solution:
    def maxProduct(self, nums: List[int]) -> int:
        length = len(nums)
        if length == 0:
            return 0
        if length == 1:
            return nums[0]
        productmax = [0 for i in range(length)]
        productmin = [0 for i in range(length)]
        productmax[0] = nums[0]
        productmin[0] = nums[0]

        for i in range(length):
            productmax[i] = max(nums[i], nums[i]*productmax[i-1], nums[i]*productmin[i-1])
            productmin[i] = min(nums[i], nums[i]*productmax[i-1], nums[i]*productmin[i-1])

        return max(productmax)
Publicado 31 artículos originales · ganado elogios 0 · Vistas 729

Supongo que te gusta

Origin blog.csdn.net/freedomUSTB/article/details/105031892
Recomendado
Clasificación