• 111_leetcode_Best Time to Buy and Sell Stock III


    Say you have an array for which the ith element is the price of a given stock on day i.

    Design an algorithm to find the maximum profit. You may complete at most two transactions.

    Note:
    You may not engage in multiple transactions at the same time (ie, you must sell the stock before you buy again).

    1:特殊情况。2:从前到后和从后到前遍历两次数字;3:在遍历的过程中,保存以当前索引为结束点或者開始点的仅仅进行一次买卖的最大收益。4:注意边界结束条件


            int maxProfit(vector<int> &prices)
        {
            if(prices.size() <= 1)
            {
                return 0;
            }
            
            int size = (int)prices.size();
            vector<int> leftProfit(size, 0);
            leftProfit[0] = 0;
            int minValue = prices[0];
            
            int result = 0;
            
            for(int i = 1; i < size; i++)
            {
                if(prices[i] > minValue)
                {
                    leftProfit[i] = (prices[i] - minValue > leftProfit[i-1] ? prices[i] - minValue : leftProfit[i-1]);
                }
                else
                {
                    minValue = prices[i];
                    leftProfit[i] = leftProfit[i-1];
                }
            }
            
            result = leftProfit[size-1] > leftProfit[size-2] ? leftProfit[size-2] : leftProfit[size-1];
            int maxValue = prices[size -1];
            int rightMaxProfit = 0;
            
            for(int i = size - 2; i >= 0; i--)
            {
                if(prices[i] < maxValue)
                {
                    rightMaxProfit = (rightMaxProfit > maxValue - prices[i] ?

    rightMaxProfit : maxValue - prices[i]); } else { maxValue = prices[i]; } if(i == 0) { result = (result > rightMaxProfit ? result : rightMaxProfit); } else { result = (result > rightMaxProfit + leftProfit[i-1] ? result : rightMaxProfit + leftProfit[i-1]); } } return result; }



  • 相关阅读:
    Math 和 Date
    GRID布局
    移动端项目布局类型
    媒体查询 + rem用法
    字符串
    ES5 中常见的数组常用方法
    数组的排序
    毕设制作:前端界面 2020-02-01
    阅读笔记十六——排序算法
    阅读笔记十五——阿里面试题
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5338499.html
Copyright © 2020-2023  润新知