diff --git a/188. Best time to Buy and Sell Stock iii.cpp b/188. Best time to Buy and Sell Stock iii.cpp new file mode 100644 index 0000000..69fa132 --- /dev/null +++ b/188. Best time to Buy and Sell Stock iii.cpp @@ -0,0 +1,26 @@ + class Solution { + public: + int maxProfit(int k, vector& a) { + int n=a.size(); + int cap=k; + vector>>dp(n+1,vector>(2,vector(k+1,0))); + for(int i=n-1;i>=0;i--) + { + for(int buy=0;buy<2;buy++) + { + for(int cap=1;cap<=k;cap++) + { + if(buy==1) + { + dp[i][buy][cap]=max(-a[i]+dp[i+1][0][cap], dp[i+1][1][cap]); + } + else{ + dp[i][buy][cap]= max(a[i]+dp[i+1][1][cap-1], dp[i+1][0][cap]); + } + } + } + } + return dp[0][1][k]; + } + }; +