假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?
解题思路:最小值点进,当天大于最小值,则可卖可赚钱;
1. 第i天能否卖? 前i-1天最小值 小于第i天时,能卖,可赚钱,记录赚钱为最大利润;
2. 第i天是否进? 如果前i-1天最小值 大于当天时,可进,则当天为前i天最小值点;
/**
* @param {number[]} prices
* @return {number}
*/
var maxProfit = function(prices) {
let max=0;
let minVal = prices[0];
for(let i=1; i<prices.length;i++){
if(minVal > prices[i]){
minVal = prices[i];
}else{
let curMax = prices[i]- minVal;
if(curMax>max) max = curMax
}
}
return max;
};