• LeetCode_Best Time to Buy and Sell Stock III


    class Solution {
    public:
        int maxProfit(vector<int> &prices) {
            // Start typing your C/C++ solution below
            // DO NOT write int main() function
            if(prices.size() <2) return 0;
            int *profit = new int[prices.size()];
            memset(profit,0, sizeof(int)*prices.size()) ;
            int i,min,maxProfit = 0,maxValue;
            min = prices[0] ;
            for(i =1; i< prices.size();i++)
            {
                if(prices[i] >= min )
                {
                  maxProfit = max(maxProfit,prices[i]- min ) ;
                  profit[i] = maxProfit ;
                }else
                {
                  profit[i] = maxProfit ;
                  min = prices[i];
                }
            }
            i--;
            maxValue= prices[i] ;
            maxProfit = 0;
            for( i--; i>= 0;i--)
            {
                if(prices[i] < maxValue )
                {
                  maxProfit = max(maxProfit,maxValue - prices[i] );
                  profit[i] += maxProfit ;
                }else
                {
                  profit[i] += maxProfit ;
                  maxValue =  prices[i];
                }
            }
            maxProfit = profit[0];
            for(i=1;i<prices.size();i++)
             if(profit[i] > maxProfit)
                 maxProfit = profit[i] ;
            
            delete []profit ;    
            return maxProfit;
        }
    };

    分析: 这道题主要是求一个分界点,分界点左侧的最大收益和右侧的最大收益之和最大,当然也可能只进行了一次交易。所以上面两边遍历,第一遍遍历求得是分界点左侧的最大收益,第二遍求得是分界点右侧的最大收益。

    --------------------------------------------------------------------天道酬勤!
  • 相关阅读:
    1月19号 UIImageView
    1月18号 UILabel 加上导入.tff格式的字体
    1月18号 UIButton
    2016年 1月15号 cocoapods的导入
    1月12号 UIView
    12月30号 iOS程序准备
    12月29号 计算器(包含混合运算)
    2016.01.13 代理设计模式
    2016.01.04 视图控制器UIViewController
    2015.12.31 iOS程序准备(developer.apple.com)
  • 原文地址:https://www.cnblogs.com/graph/p/3015743.html
Copyright © 2020-2023  润新知