Menu
CoddyTech

Best Time to Buy and Sell Stock

FácilVorazpython iconjava iconcpp iconc iconjs icon+10

Obtienes el precio de una acción a lo largo de una serie de días, un precio por día. Puedes comprar una acción un día y venderla en un día posterior. La ganancia es el precio de venta menos el precio de compra, y quieres obtener la mayor ganancia posible. Si todas las operaciones te harían perder dinero, simplemente no operas y ganas 0.

Considera los precios [7, 2, 5, 9, 1, 4]. Comprar a 2 el día 1 y vender a 9 el día 3 genera 7, y ningún otro par de días da un resultado mejor. Comprar a 1 el día 4 parece tentador porque es el día más barato, pero el único día posterior permite vender a 4, así que esa operación solo genera 3.

Probar todos los pares de días funciona, pero es demasiado lento para listas de precios largas. En cambio, puedes hacerlo recorriendo los días una sola vez. Si vendes hoy, el mejor día para haber comprado es el día más barato hasta ahora, así que ve guardando ese precio mínimo. La mejor ganancia de hoy es el precio de hoy menos el precio mínimo, y la respuesta es la mayor de esas ganancias.

Escribe una función llamada maxProfit que reciba una lista de números enteros prices, donde prices[i] es el precio de la acción en el día i, y devuelva la mayor ganancia que puedes obtener comprando un día y vendiendo en un día posterior. Si ninguna operación genera ganancias, devuelve 0.

Restricciones: 1 ≤ prices.length ≤ 10^5, 0 ≤ prices[i] ≤ 10^4.

Función

maxProfit(arg1: integer-array) → integer
arg1integer-array
Devuelveinteger

Ejemplos

Entrada
arg1 = [7, 2, 5, 9, 1, 4]
Salida
7

lock icon+12 pruebas ocultas al enviar

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

Caso 1

Caso 2

Entrada

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

Esperado

7