zoukankan      html  css  js  c++  java
  • 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; }



  • 相关阅读:
    在Ubuntu上安装Hadoop(集群模式)
    Node.js v0.10.8 发布
    设置 Sublime Text 的 Python 开发环境
    jQuery 1.10.0 和 2.0.1 发布
    openSUSE 13.1 Milestone 2 发布
    mochad 0.1.6 发布,TCP 网关守护进程
    JPPF 3.3.2 发布,Java 并行处理框架
    PyCharm 又一强大Python IDE
    AntiXSS 支持Html同时防止XSS攻击
    (原创)攻击方式学习系列(总)
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5338499.html
Copyright © 2011-2022 走看看