0
点赞
收藏
分享

微信扫一扫

买卖股票的最佳时机【力扣121】

alonwang 2023-08-23 阅读 24

一、解题思路

假如我们要在第 i 天卖出股票,那么为了获得最大利润,买股票的最佳时间是第 i 天前的最低股价的那一天。

我们使用min来记录已经访问过的 0-i 天的最低股价。那么在第 i 天,如果股价大于min,那么最大利润为price[i]-min;否则最大利润为0,并且min=price[i]。

二、示例代码

class Solution {
public:
    int maxProfit(vector<int>& prices) {
        int min=prices[0],ans=0;
        for(int i=1;i<prices.size();i++){
            if(prices[i]>min){
                if(ans<prices[i]-min){
                    ans=prices[i]-min;
                }
            }else{
                min=prices[i];
            }
        }
        return ans;
    }
};
举报

相关推荐

0 条评论