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

    只能买卖k次,和上一题一样的dp方式,但是当k大于n的一半时,就相当于无限次交易了,这个是没有想到的....

    code

    class Solution {
    public:
        int dp[100005][2];
        int maxProfit(int k,vector<int>& prices) {
            int n=prices.size();  
            int ans=0;
            if(k>2*n){
                return maxProfit(prices);
            }
            for(int i=1;i<=k;i++){
                dp[i][0]=-0x3f3f3f3f;
                dp[i][1]=0;
            }
            for(int i=0;i<n;i++){
                for(int j=1;j<=k;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]);
                    cout << dp[j][0] <<" " <<dp[j][1] <<"
    ";
                    ans=max(ans,dp[j][1]);
                }
            }
            return ans;
        }
        int maxProfit(vector<int>& prices) {
            int n=prices.size();
            int ans=0;
            for(int i=1;i<n;i++){
                int c=prices[i]-prices[i-1];
                if(c>0){
                    ans+=c;
                }
            }
            return ans;
        }
    };
    
  • 相关阅读:
    ListIterator
    List与set
    iterator取集合元素
    我眼中的AI
    集合的共性方法
    集合转数组
    打开与关闭eclipse的自动补全功能
    Mr_matcher的细节1
    nodelet的应用
    nodelet的理解
  • 原文地址:https://www.cnblogs.com/zxcoder/p/12573130.html
Copyright © 2011-2022 走看看