zoukankan      html  css  js  c++  java
  • Leetcode_123. 买卖股票的最佳时机 III

    最多只能交易两次,因此只能用到dp做法,也可以拓展到只能交易n次。
    dp[i][j][0/1]表示到第i个物品,第j次交易,买/卖得到的当前收益,第一维可以优化掉。
    然后第j次交易买的收益显然就是第j-1次交易卖后的收益再减去当前价格。而卖的收益就是前面算出的买的收益再加上当前价格,注意这里指的是先卖再买

    code

    class Solution {
    public:
        int dp[3][2];
        int maxProfit(vector<int>& prices) {
            int n=prices.size();  
            int ans=0;
            for(int i=1;i<=2;i++){
                dp[i][0]=-0x3f3f3f3f;
                dp[i][1]=0;
            }
            for(int i=0;i<n;i++){
                for(int j=1;j<=2;j++){
                    dp[j][0]=max(dp[j][0],dp[j-1][1]-prices[i]);
                    dp[j][1]=max(dp[j][1],dp[j][0]+prices[i]);
                    ans=max(ans,dp[j][1]);
                }
            }
            return ans;
        }
    };
    
  • 相关阅读:
    通过kinaba对es进行crud
    安装启动kibana
    es安装启动
    IP网络层
    Java 高级文本处理
    django17
    邮件问题
    django16
    django15
    django14
  • 原文地址:https://www.cnblogs.com/zxcoder/p/12572980.html
Copyright © 2011-2022 走看看