买卖股票的最佳时机

一、题目

给定一个数组 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
};
posted @ 2022-05-13 13:31  花村店长  阅读(45)  评论(0)    收藏  举报