zoukankan      html  css  js  c++  java
  • lintcode-151-买卖股票的最佳时机 III

    151-买卖股票的最佳时机 III

    假设你有一个数组,它的第i个元素是一支给定的股票在第i天的价格。设计一个算法来找到最大的利润。你最多可以完成两笔交易。

    注意事项

    你不可以同时参与多笔交易(你必须在再次购买前出售掉之前的股票)

    样例

    给出一个样例数组 [4,4,6,1,1,4,2,5], 返回 6

    标签

    前后遍历 枚举法 数组

    思路

    使用前后遍历,分别求出 0-i 的最大值和 i+1-size-1 的最大值。
    left[i] 表示0 - i 这段数组的最大收益
    right[i] 表示i - A.length-1 这段数组的最大收益

    code

    class Solution {
    public:
        /**
         * @param prices: Given an integer array
         * @return: Maximum profit
         */
        int maxProfit(vector<int> &prices) {
            // write your code here
            int size = prices.size();
            if(size <= 0) {
                return 0;
            }
            
            int max = 0, i = 0, min = 0;
            vector<int> left(size, 0);
            vector<int> right(size, 0);
    
            min = prices[0];
            for(i=1; i<size; i++) {
                if(prices[i] >= min) {
                    left[i] = (left[i-1] > prices[i]-min) ? left[i-1] : prices[i]-min;
                }
                else {
                    left[i] = left[i-1];
                    min = prices[i];
                }
            }
            max = prices[size-1];
            for(i=size-2; i>=0; i--) {
                if(prices[i] <= max) {
                    right[i] = (right[i+1] > max-prices[i]) ? right[i+1]  : max-prices[i];
                }
                else {
                    right[i] = right[i+1];
                    max = prices[i];
                }
            }
    
            max = INT_MIN;
            for(i=0; i<size; i++){
                max = (max > left[i]+right[i]) ? max : left[i]+right[i];
            }
            return max;
        }
    };
    
  • 相关阅读:
    C# Renci.SshNet SFTP--FTP 操作help
    点评js异步加载的4种方式
    C# csv 操作类
    Redis分布式缓存
    webApi FileReader
    Web API 2 authentication with JWT
    Web SQL
    jQuery图像照片剪裁插件Jcrop中文演示
    使用ajax跨域withCredentials的作用
    JavaScript 判断浏览器类型及版本
  • 原文地址:https://www.cnblogs.com/libaoquan/p/7243072.html
Copyright © 2011-2022 走看看