云南昆明网站建设公司,创意网红蛋糕,网站开发方案目录,黄岛做网站的公司Day 51 动态规划
309. 最佳买卖股票时机含冷冻期
关键是要画出状态转移图
然后根据状态转移图来写状态转移方程
class Solution {
public:int maxProfit(vectorint prices) {int len prices.size();vectorvectorint dp(len, vectorintint prices) {int len prices.size();vectorvectorint dp(len, vectorint(4, 0));dp[0][0] -prices[0];for (int i 1; i len; i){dp[i][0] max(dp[i - 1][0], max(dp[i - 1][1] - prices[i], dp[i - 1][3] - prices[i]));dp[i][1] max(dp[i - 1][1], dp[i - 1][3]);dp[i][2] dp[i - 1][0] prices[i];dp[i][3] dp[i - 1][2];}return max(dp[len - 1][1], max(dp[len - 1][2], dp[len - 1][3]));}
};714. 买卖股票的最佳时机含手续费
这道题其实就是在买卖股票II的基础上加入一点变化而已代码框架还是那个框架。
class Solution {
public:int maxProfit(vectorint prices, int fee) {vectorvectorint dp(prices.size(), vectorint(2, 0));dp[0][0] -prices[0] - fee;for (int i 1; i prices.size(); i){dp[i][0] max(dp[i - 1][0], dp[i - 1][1] - prices[i] - fee);dp[i][1] max(dp[i - 1][1], dp[i - 1][0] prices[i]);}return dp[prices.size() - 1][1];}
};