文章
99
粉丝
120
获赞
8
访问
96.5k
class Solution {
public:
int maxProfit(vector<int>& prices) {
if(prices.size()==0)return 0;
//f[i]到第i天为止的最大收益。
//0,1,2分别表示当前手上持有股票,不持有股票且明天为冷冻期,不持有且明天不是冷冻期
int n = prices.size();
vector<vector<int> >f(n, vector<int>(3));
f[0][0] = -prices[0];
for(int i = 1; i < n; i++){
f[i][0] = max(f[i-1][0], f[i-1][2]-prices[i]);
f[i][1] = f[i-1][0]+prices[i];
f[i][2] = max(f[i-1][1], f[i-1][2]);
}
return max(f[n-1][1], f[n-1][2]);
}
};
登录后发布评论
暂无评论,来抢沙发