题目描述
示例
代码
class Solution {
public:
int maxProfit(vector<int>& prices) {
int n=prices.size();
if(n<=1) return 0;
vector<int> dp(5,0);
//0:不操作;1:买入;2:卖出;3:买入;4:卖出
dp[1]=-prices[0];
dp[3]=-prices[0];
for(int i=1;i<n;i++)
{
dp[1]=max(dp[1],-prices[i]);
dp[2]=max(dp[2],dp[1]+prices[i]);
dp[3]=max(dp[3],dp[2]-prices[i]);
dp[4]=max(dp[4],dp[3]+prices[i]);
}
return dp[4];
}
};