Supongamos que tiene una matriz para la que el i-ésimo elemento es el precio de una acción determinada el día i.
Si solo se le permitió completar como máximo una transacción (es decir, comprar una y vender una acción), diseñe un algoritmo para encontrar la máxima ganancia.
Solución Java
En lugar de realizar un seguimiento del elemento más grande de la matriz, hacemos un seguimiento del beneficio máximo hasta ahora.
public int maxProfit(int[] prices) { if(prices==null||prices.length<=1) return 0; int min=prices[0]; // min so far int result=0; for(int i=1; i<prices.length; i++){ result = Math.max(result, prices[i]-min); min = Math.min(min, prices[i]); } return result; } |