botón de encendido diario un problema

Título fuerzas hebilla (el mejor momento para comprar y vender las existencias) una pregunta por el día 9 de marzo de

Creo que muchos estudiantes en el botón de encendido del cepillo, se requiere Esta pregunta hoy es la siguiente:
Dado un vector, que i-ésimo elemento es el precio de una acción dada i-ésimo día.

Si sólo se le permite hasta completar una transacción (es decir, la compra y venta de una acción), para diseñar un algoritmo para calcular el beneficio máximo que se puede conseguir.

Nota , no se puede vender las acciones antes de la compra de acciones.
En primer lugar, el significado de las preguntas, dada una matriz, que significa que es un tipo entero lista desordenada, la lista tiene un índice, puede ser iterativo, puede atravesar las características de un elemento representa un día, compra y venta pueden ser sólo un día de acción ser uno de ellos, que sólo puede comprar o vender, no comprar y vender en el mismo día, para comprar o vender.
Tenga en cuenta que esto requiere una nota buena, la suposición de que un conjunto dado es [11,6,4,8,], no se puede comprar después de vender ,, es decir, compra y venta no es suficiente, ahora se requiere la búsqueda de la máxima ganancia, entonces el máximo beneficio sin importar cómo comprar o cómo vender, debido a la compra y venta límite no funciona, entonces la diferencia entre los valores máximo y mínimo de la lista debe ser el máximo beneficio máximo, mínimo se fija, no hay fijo, porque no el primero puede comprar y vender, también ese es el valor máximo del índice es mayor que el valor mínimo del índice, este es el momento adecuado para maximizar los beneficios. Esa es la mínima máxima menos es la diferencia máxima es la ganancia, pero no puede comprar y vender, por lo que si el valor máximo del índice es menor que el índice de valor mínimo, es necesario comparar los máximos y mínimos tiempos, si las condiciones no son todavía satisfecho, el índice es menor que el mínimo, el máximo y mínimo a cabo una resta, en línea con el valor del índice es mayor que el mínimo hasta que, cuando la diferencia entre el número a un beneficio máximo, directamente en el siguiente código:

def maxProfit(prices) -> int:
    n = len(prices)
    if n == 0 or n == 1:
        return 0
    min_price = prices[0]
    profit = 0
    for i in range(1, n):
        if prices[i] < min_price:
            min_price = prices[i]
        if prices[i] - min_price > profit:
            profit = prices[i] - min_price
    return profit
print(maxProfit([11,6,4,8]))
至此,本题解答完毕!!
Publicado 13 artículos originales · ganado elogios 0 · Vistas 304

Supongo que te gusta

Origin blog.csdn.net/alwaysbefine/article/details/104760186
Recomendado
Clasificación