Especias entre puertos
- O(n) · Media
- Plan completo
- Python
- JavaScript
- listas
- ciclos
- comparaciones
Enunciado
"Barato primero, caro después, y nunca al revés", repite la capitana Brea. Su barco visita los puertos uno tras otro y en cada uno sabe cuánto cuesta el saco de canela. En todo el viaje compra un solo saco, en algún puerto, y lo vende en uno de los que vienen después.
Escribe una función que reciba la lista de precios, en el orden en que el barco visita los puertos, y regrese un número entero: la mayor ganancia posible, que es el precio de venta menos el de compra.
Con 9, 4, 7, 2 y 5, lo mejor es comprar en 4 y vender en 7, o comprar en 2 y vender en 5: ganas 3. No puedes comprar en 2 y vender en 9, porque cuando llegas al 2 el puerto del 9 ya quedó atrás.
Los precios son enteros positivos. Si ninguna compra deja ganancia, porque los precios solo bajan o se quedan igual, o porque hay menos de dos puertos, no compras nada y regresas 0.
Ejemplos
El del ejemplo
[9, 4, 7, 2, 5] → 3
El mejor trato cruza todo el viaje
[3, 8, 2, 6, 10, 1] → 8
El más barato llega después del más caro
[12, 5, 8, 1] → 3
Los precios solo bajan
[10, 8, 5, 3] → 0
Los precios solo suben
[2, 4, 9] → 7
Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.
Empiezas con esto
Python
def mejor_ganancia(precios):
passJavaScript
function mejorGanancia(precios) {
}Se abre en el navegador, con el editor y las pruebas. Este reto es del plan completo; los de O(1) y O(log n) son gratis.