买卖股票的最佳时机
一、题目
给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。
你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。
二、思路
1.将第一天初始化为最佳买入点
2.如果股票下跌,不断更新最佳买入点
3.如果股票上涨,计算后面价格与最佳买入点的差值,并不断更新最大利润(差值)
三、程序实现
/**
* @param {number[]} prices
* @return {number}
*/
var maxProfit = function(prices) {
//卖出点一定在买入之后
//如果某个点是卖出点,那买入点肯定是左侧的最小值点,才能得到最大差值
//不断更新最大差值
if(prices.length<2){
return 0
}
let minprice=prices[0]; //将第一天初始化为最佳买入点
let max_profit=0;
for(let i=1;i<prices.length;i++){
if(minprice>prices[i]){ //股票下跌更新最小值
minprice=prices[i]
}else if(prices[i]-minprice>max_profit){ //股票上涨的时候记录差值
max_profit=prices[i]-minprice; //max_profit永远记录最大差值
}
}
return max_profit
};

浙公网安备 33010602011771号