Menu
CoddyTech

Best Time to Buy and Sell Stock

FácilVorazpython iconjava iconcpp iconc iconjs icon+10

Recibes una lista prices, donde prices[i] es el precio de una acción el día i. Puedes comprar una acción un día y venderla en un día posterior. Devuelve la mayor ganancia que puedas obtener, o 0 cuando todas las operaciones posibles den pérdidas.

Función

maxProfit(prices: integer-array) → integer
pricesinteger-array
el precio de la acción cada día, en orden
Devuelveinteger
la mayor ganancia de una compra y una venta posterior, o 0

Restricciones

  • 1 ≤ prices.length ≤ 105
  • 0 ≤ prices[i] ≤ 104
  • Realizas como máximo una operación y vendes en un día posterior al de la compra.

Ejemplos

Entrada
prices = [7, 2, 5, 9, 1, 4]
Salida
7
Explicación
Compra el día 1 a 2 y vende el día 3 a 9 para obtener una ganancia de 7. El precio más bajo, 1 el día 4, viene después del 9, así que la mejor venta posterior solo genera 3.
challenge icon

Para ir más allá

¿Y si pudieras realizar tantas operaciones como quisieras, pero manteniendo como máximo una acción a la vez?

Restablecer código
def maxProfit(prices):
    # Escribe el código aquí

Prueba #1

Prueba #2

Argumento

prices = [7, 2, 5, 9, 1, 4]

Salida Esperada

7