状态机DP
作者:互联网
简介
简单来说就是从一个状态变成另一个状态的路径
感觉还是挺新颖的.
714
https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/
code
class Solution {
public:
int maxProfit(vector<int>& prices, int fee) {
if(prices.size() == 0) return 0;
// 没有冷冻期
vector<vector<int>> dp(prices.size(), vector<int>(2));
dp[0][0] = 0; // 表示第 i 天交易完后手里没有股票的最大利润
dp[0][1] = -prices[0]; // 表示第 i 天交易完后手里持有一支股票的最大利润(i 从 00 开始)。
for(int i=1; i<prices.size(); i++){
dp[i][0] = max(dp[i-1][1] - fee + prices[i], dp[i-1][0]); // 前一天买入的卖出 前一天清空了股票
dp[i][1] = max(dp[i-1][1], dp[i-1][0] - prices[i]); // 继续持有 或者卖出后买入
}
return dp[prices.size() - 1][0];
}
};
标签:fee,int,状态机,vector,DP,prices,dp,size 来源: https://www.cnblogs.com/eat-too-much/p/15266722.html