Categorías
Otros

«Sword se refiere a la» o «serie de pinceles- (cuarenta y cinco) el mayor beneficio de las acciones

Tema

Supongamos que el precio de una acción se almacena en la matriz en orden, ¿cuánto es el beneficio máximo de comprar y vender la acción una vez?

Ejemplo 1
Entrar: [7, 1, 5, 3, 6, 4]
Salida: 5
Explicación: Comprar en el segundo día (precio de la acción = 1), venderlo en el día 5 (precio de la acción = 6), beneficio máximo = 6-1 = 5 .
Tenga en cuenta que los beneficios no pueden ser 7-1 = 6, porque los precios de venta deben ser mayores que los precios de compra.

Ejemplo 2:
Entrar: [7, 6, 4, 3, 1]
Salida: 0
Explicación: En este caso, no hay ninguna transacción que completar, por lo que el beneficio máximo es 0.

Pensar

Pregunte al máximo beneficio DP [i] en el día I, es el valor máximo en estos dos casos: uno se vende antes del día I, el otro se vende en la primera i.
Si se vende antes que yo, entonces el beneficio máximo DP [i] del día i es el máximo beneficio DP [I-1] en el primer día;
Si se vende en el día i, el máximo beneficio DP [i] del día i es el precio mínimo del primer día i-1.

Ecuación de transferencia dinámica:

dp[i] = max(dp[i-1],prices[i]-min(prices[0:i]))

Debido a que el suscriptor de la matriz Price comienza a partir de 0, el precio del día i-th es realmente precios [i -1].

Código

class Solution:
    def maxProfit(self, prices: List[int]) -> int:
        n = len(prices)
        if n==0 or n==1: return 0
        dp = [0,0]
        min_value = prices[0]
        for i in range(2,n+1):
            min_value = min(min_value,prices[i-2])
            res = max(dp[i-1],prices[i-1]-min_value)
            dp.append(res)
        return dp[n]

la complejidad

Complejidad de tiempo O (N)
Complejidad espacial O (N)

  Escenarios de uso de puntos de conocimiento de referencias blandas o referencias débiles en el desarrollo real

Por Programación.Click

Más de 20 años programando en diferentes lenguajes de programación. Apasionado del code clean y el terminar lo que se empieza. ¿Programamos de verdad?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *