C++ NC7 买卖股票的最好时机

NC7 买卖股票的最好时机

方法的时间复杂度O(n),空间复杂度O(1)

    int maxProfit(vector<int>& prices) 
    {
        //当前利润
        int curProfit = 0;
        //当前最大利润
        int result = 0;
        for (int i = 1; i < prices.size(); i++)
        {
            //获得与上一天股票差值
            curProfit += (prices[i] - prices[i - 1]);
            //当前利润比当前最大利润大时,将当前利润设为当前最大利润
            if (curProfit > result)
            {
                result = curProfit;
            }
            if (curProfit < 0)//发现比上一个起点更低的值,更换起点
            {
                curProfit = 0;
            }
        }
        return result;
    }

 

posted @ 2021-09-18 08:45  mshentai  阅读(54)  评论(0编辑  收藏  举报